Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chai with should:如何不破坏使用名为;“应该”吗;?_Javascript_Chai - Fatal编程技术网

Javascript Chai with should:如何不破坏使用名为;“应该”吗;?

Javascript Chai with should:如何不破坏使用名为;“应该”吗;?,javascript,chai,Javascript,Chai,我正在使用柴与应该。效果很好。但是,当我尝试使用具有名为的属性的对象时,我会遇到麻烦: // object under test function run() { var x = {}; console.log('typeof should:', typeof(x.should)); // 'object' if (x.should == null) { console.log('initializing x.should'); x.sh

我正在使用柴与应该。效果很好。但是,当我尝试使用具有名为
的属性的对象时,我会遇到麻烦:

// object under test
function run() {
    var x = {};
    console.log('typeof should:', typeof(x.should)); // 'object'

    if (x.should == null) {
        console.log('initializing x.should');
        x.should = [];
    }

    // TypeError: Object #<Assertion> has no method 'push';
    x.should.push('foobar')
}

// test code
var chai = require('chai');
chai.should();
run();
//正在测试的对象
函数运行(){
var x={};
log('typeof should:',typeof(x.should));//'object'
if(x.should==null){
log('initialized x.should');
x、 应=[];
}
//TypeError:对象#没有方法“push”;
x、 should.push('foobar'))
}
//测试代码
var chai=需要(“chai”);
chai.should();
run();
当我使用Mocha运行此代码时,条件永远不会为true,因此属性
应该
永远不会初始化

由于问题出现在包含的库中(确切地说是elastic.js),因此修改测试对象不是一个选项


有什么方法我仍然可以使用柴的should吗?

如果(!x.hasOwnProperty(“should”)| x.should==null)
很好的尝试:-)遗憾的是,“生产”代码是我无法控制的库的一部分。我将相应地更新问题。在这种情况下,阻止
chai
扩展
Object.prototype
(它真的不应该这样做),或者在不同的窗口中运行它(iframe,无论什么),我如何防止这种情况?它发生在这里:-->