2017-06-29 55 views
0

在我的生产代码中,我有一个阻塞程序为10 ms的函数(因为使用execSync)。在我的测试我使用testdouble.js库存根它:在JavaScript中延迟存根(stub)答案

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

但是短线会立即响应,并在现实功能getCurrentSignalStrength持续10毫秒响应。我想延迟存根的答案,所以测试会更接近现实。我阅读了testdouble.js的文档: https://github.com/testdouble/testdouble.js/blob/master/docs/5-stubbing-results.md#delay但不幸的是,似乎延迟选项不可用于然后返回方法。那么如何推迟存根答案?

回答

0

我不知道你使用的库,但我怀疑的是,你要td.when(getSignalStrength)而不是td.when(getSignalStrength())

你有什么调用的signalStrength函数,然后通过该返回值放入td.when

+1

正确的形式是括号。它是用图书馆文件编写的。 – user3134600

0

没有办法导致testdouble.js阻塞执行线程。就像文件中说的那样,即使deferdelay都不被赞成。

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