我想模拟一些Class的某个对象,但是要抓住这个错误:
function MyClass(){}
var myInstance = new MyClass();
var mock = sinon.mock(myInstance);
console.log(mock instanceof MyClass); // false
如果单元在构造函数中检查完全相同的instanceof,我如何将此模拟传递给测试单元?
我知道,那个存根解决了这个问题,但我确实需要Mock。
谢谢=)
答案 0 :(得分:0)
如果我没有弄错的话,Sinon模拟包装他们的相关对象,而不是直接采用他们的原型链,这意味着instanceof
永远不会按你的意愿工作。
如果您能够更改被测单元,请考虑检查传入对象上是否存在重要属性,而不是其原型链。例如,如果您的单位使用MyClass
的{{1}}方法,则让单位检查foo
而不是typeof o.foo === 'function'
。
答案 1 :(得分:0)
问题是错误的。
我还需要传递mock
对象,然后验证myInstance
:
mock
传递给受测试的单元
new SUT(myInstance);
mock.verify();