如何修复'TypeError:无法在Jasmine中重新定义属性:origin'

问题描述 投票:0回答:1

我有其中的场景

if(window.location.origin){
    //list of operations
}else{
    //list of operations
}

我正在尝试使用[茉莉花]为Jasmine中的window.location.origin属性分配值readonly属性>]

Object.defineProperty(window.location, 'origin', {
   value: '',
   writable: true,
}

但是我收到错误TypeError: Cannot redefine property: origin

我已经尝试了以下针对jest的解决方案,这些解决方案建议更改jsdom并使用reconfigure更改测试环境的值。有办法在茉莉花中做到这一点吗?我可以得到Env() using jasmine.getEnv()的茉莉花,但无法设置它。

Unable to change window.location using Object.defineProperty

Unable to redefine properties of the window object

我有if(window.location.origin){//操作列表} else {//操作列表} >

javascript angular unit-testing dom jasmine
1个回答
0
投票

如果仅为了在NodeJS中进行测试而尝试执行此操作,请尝试重新定义其构造函数:

Object.defineProperty(window.location.constructor.prototype, 'origin', {
   value: '',
   configurable: true,
}
© www.soinside.com 2019 - 2024. All rights reserved.