Задержка ответа на заглушку в 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 мс. Что это указывает на ваш дизайн?

Другие вопросы по тегам