2017-06-29 66 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。這在設計中表明瞭什麼?