鉴于这两个功能
function func1() {
return new Promise((resolve, reject) => {
return resolve({
method: function(variable) {
return variable
}
})
})
}
function func2() {
return new Promise((resolve, reject) => {
func1()
.then(obj => {
return resolve(obj.method('stuff'))
})
})
}
注意:它们都在一个单独的模块中,func2
需要导入/导入func1
我想知道如何断言func2
以obj.method()
作为参数解析stuff
。我正在考虑使用sinonJS对其进行存根,但我不确定如何对其进行存根(因为我无法在单元测试文件中真正需要/导入obj方法到存根)。
我可用的测试套件是Mocha / Chai / Sinon,但是如果它可以通过其他方式实现,那么这些并不是一个严格的要求。
答案 0 :(得分:0)
轻微的解决方法,但您应该能够执行以下操作。
import * as functions from './func1';
const obj = {
method: sinon.spy()
};
sinon.stub(functions, 'func1')
.returns(new Promise(obj));
expect(obj.method).to.have.been.calledWith('stuff'); // sinon-chai expectation