我想为一个预约服务编写一个摩卡测试套件,这个预约服务调用一个异步运行的postReservation服务?如何测试postReservation服务是否被调用?
async function bookReservation(...){
await bookReservationForUser(...);
postReservation(...);
}
async function postReservation(...){
await DoSomeThing();
await DoSomeOtherThing();
}
有比这更好的方法吗?
摩卡测试套件:
一个二个一个一个
1条答案
按热度按时间lpwwtiir1#
你对测试的想法是正确的,它主要归结为实现,因为它取决于Assert库和代码的结构。
本质上,你可以使用
spy
或stub
来监视postReservation
,如果你不关心返回值,那么spy就很好用。在下面使用您的代码的测试示例中,每个模块都有来自
wait
的短暂延迟。测试调用Module C
,Module C
调用Module B
和Module A
。测试检查B
/A
是否都通过C
调用。这里有一个working sandbox来进行测试。
索引测试js
等等,js
模块A.js
模块B.js
模块C.js
如果你使用的是CJS而不是ESM,那么你构建模块、示例化模块以及在测试中导入模块的方式会稍有变化。