我写了一个基于承诺的API。单元测试是最好的方法?茉莉花是一个好方法吗?使用Jasmine的api单元测试承诺
另外还可以给我一个例子,如何可以单元测试承诺?一个单位是否应该测试“当时”以及“捕获”部分?
我写了一个基于承诺的API。单元测试是最好的方法?茉莉花是一个好方法吗?使用Jasmine的api单元测试承诺
另外还可以给我一个例子,如何可以单元测试承诺?一个单位是否应该测试“当时”以及“捕获”部分?
茉莉花绝对是做基于承诺的单元测试的强有力的选择。在不太了解API的情况下,下面是几个例子,说明如何在等待承诺解决或失败时进行单元测试。
下面示例中的关键字是传递给每个单元测试(it
块)的done
变量。这让茉莉花知道测试是异步的,茉莉花会在从单元测试开始之前调用done
函数。
希望这会有所帮助!
describe('Unit tests', function() {
it('promise should succeed', function (done) {
myApi.function().then(function(data) {
//assert data came back correctly
done();
}).catch(function() {
fail();
});
});
it('promise should throw error', function() {
myApi.function().then(function(data) {
fail();
}).catch(function(error) {
//assert error has been thrown correctly
done();
});
});
});
茉莉花是单元测试框架,它提供了测试运行,总部设在断言方法和嘲笑/间谍。这是单元测试JavaScript代码的一种流行方式。它不比任何其他可用的方法/框架更好,应该根据其他选项进行评估,以确定它是否适合您的项目。
没有示例代码,单元测试承诺应该与单元测试任何其他代码没有区别。对IO依赖关系进行存根并评估所有关键逻辑路径。如果你的承诺明确抛出的可能是一个有价值的方法来断言。与then
相同,调用then
应该允许您测试您的解决逻辑。
必须通过then
和catch
与您的代码交互可能不是行使您的承诺逻辑的最有效方式。如果存在大量的逻辑,则将其封装在承诺之外的函数中是很好的,以便于进行单元测试。然后,通过解决承诺,可轻易测试该核心逻辑的接口。