我有一个函数返回一个Promise
包裹另一个函数的函数,该函数与它自己的承诺/回调实现一起使用,如下所示:
function getResult() {
return new Promise((resolve, reject) => {
const service = Service(config)
return Service.initialize({scope: 'param'})
.success((result) => {
result ? resolve(service.res) : reject(new Error('Something happened'))
})
.error(() => {
reject(new Error('Something happened'))
)})
})
}
编辑:我可以将上述函数重写为:
function getResult(done) {
const service = Service(config)
Service.initialize({scope: 'param'})
.success((result) => {
result ? done(null, result) : done(new Error('Something happened'), null))
})
.error(() => {
done(new Error('Something happened'), null)
}
我不知道如何对这样的东西进行单元测试?我尝试stub
使用Service
andsinon
来检查它是否被调用,但以下方法不起作用:
it('should initialize service and return res', () => {
const mockService = sinon.stub(Service, 'initialize')
mockService.withArgs({scope: 'param'}).returns(Promise.resolve(true))
expect(mockService.callCount).to.equal(1)
})
任何帮助,将不胜感激。