【发布时间】:2016-10-16 06:35:26
【问题描述】:
我正在为从某个 REST API 获取信息的函数编写单元测试。我正在使用ramda Future 输入(source)。
以下测试很奇怪:
it('should return Maybe of Nothing', done => {
let response = {
status: 200,
json: () => {
return {
results: []
}
}
}
let fakeFetch = {
fetch: () => {
return new Promise((resolve, reject) => {
resolve(response)
})
}
}
// String -> Future Error Maybe
let result = Utils.fetchGiantBomb(faker.random.word(), fakeFetch.fetch);
result.fork(err => {
assert.fail(err, 'expected to return Maybe of Nothing');
done();
}, data => {
expect(Maybe.isJust(data)).to.be.true;
done();
})
})
data 应该是 Maybe.Nothing 类型。如果我期望Maybe.isNothing 测试通过,但我想看看测试失败时会发生什么,所以我将它设置为Maybe.isJust,它返回false。看了一会儿之后,我注意到当 expect 失败时,它会跳转到错误处理(err 回调),然后停止执行任何断言(这会导致 2000 毫秒超时)。
在Future 来源中,我看到当成功回调失败时,它会执行失败回调。如何完成此测试以显示数据不是我所期望的?
【问题讨论】:
标签: javascript node.js unit-testing ramda.js