我有一个函数返回一个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
和使用sinon
来检查它是否是所谓的,但下面不工作:
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)
})
任何帮助,将不胜感激。
服务来自另一个库或您创建的东西?这似乎是一个或另一个是多余的,但我不能没有更多的背景知道你想要做什么。 –
是的,服务来自我们创建的另一个库,我们将它用作NPM模块。我知道服务的成功/错误功能看起来很奇怪,但我无法控制它。你认为这可以以更好的方式实施吗? – Hawkes
但是,您可能不需要在此使用承诺。如果你展示更多的代码或让我知道图书馆,我可以想到一些东西。 –