Как к функциям модульного теста, звоня localtime () в Perl?

У меня есть вызов метода localtime то, что я записал модульный тест на. Я отбираю вызов к localtime в моем тесте так, чтобы я знал ожидаемые ответы.Пока все хорошо. Я, оказывается, выполняю модульный тест на машине в другом часовом поясе и, очевидно, тестовый сбой, потому что они - некоторый # часов прочь. Я предполагаю, что мог динамично определить корректные математические ожидания, но это, кажется, идет вразрез с идеей знать ответ прежде, чем задать вопрос.

Какие-либо мысли о том, как приблизиться к этому? Переопределение localtime? Это кажется экстремальным значением.

Спасибо!

5
задан Joe Casadonte 14 July 2010 в 01:37
поделиться

2 ответа

Я не думаю, что есть какая-то проблема с вычислением значений ответов в модульном тесте. Юнит-тесты должны быть достаточно простыми, чтобы избежать ошибок, связанных со сложностью, но простой расчет часового пояса, вероятно, не переходит границы.

В данном конкретном случае, однако, вы можете установить часовой пояс на фиксированное значение (или несколько) как часть теста. См. это сообщение на Stack Overflow о установке часового пояса в Perl.

6
ответ дан 13 December 2019 в 19:20
поделиться

Я не совсем уверен, каковы ваши требования, но вы можете что-то сделать, используя Test :: MockTime или Time :: Mock , оба из которых заменят localtime и его друзей на поддельные версии, которые ведут себя так, как вы хотите.

5
ответ дан 13 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: