Задержка ответа на заглушку в Javascript
В моем производственном коде у меня есть функция, которая блокирует программу на 10 мс (из-за использования execSync). В моем тесте я использовал библиотеку testdouble.js, чтобы заглушить ее:
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 но, к сожалению, кажется, что опция задержки недоступна для метода thenReturn, Так как же задержать ответ на заглушку?
1 ответ
Нет способа заставить testdouble.js блокировать поток выполнения. Как говорится в документации, даже defer
а также delay
нахмурились.
Это звучит как пример чрезмерно оборонительной спецификации; "ответ" в этом случае заключается в том, чтобы решить, действительно ли вам нужно блокировать и задерживать на 10 мс. Что это указывает на ваш дизайн?