在Javascript中延迟存根答案

时间:2017-06-29 17:17:24

标签: javascript node.js stub stubbing testdoublejs

在我的生产代码中,我有一个阻止程序10毫秒的函数(因为使用了 execSync )。在我的测试中,我使用了testdouble.js库来存根:

td.when(getSignalStrength()).thenReturn.apply(null, array);

然而,存根立即响应,实际上函数 getCurrentSignalStrength 在10 ms后响应。我想延迟存根的答案,所以测试会更接近现实。我阅读了testdouble.js的文档: https://github.com/testdouble/testdouble.js/blob/master/docs/5-stubbing-results.md#delay但遗憾的是,似乎 delay 选项不适用于 thenReturn 方法。那么如何延迟存根回答呢?

1 个答案:

答案 0 :(得分:0)

无法使testdouble.js阻止执行线程。与文档说的一样,即使deferdelay也不赞成。

这听起来像一个过于防守的规范的例子;在这种情况下,“答案”是考虑你真的是否需要阻止和延迟10ms。这在您的设计中表明了什么?