繁体   English   中英

如何在Perl中调用localtime()的单元测试函数?

[英]How to unit test functions calling localtime() in Perl?

我有一个调用localtime的方法,我写了一个单元测试。 我在测试中将调用播种到localtime ,以便我知道预期的答案。 到现在为止还挺好。 我碰巧在不同时区的机器上运行单元测试,并且可以预见,测试失败了,因为他们有几个小时的休息时间。 我想我可以动态地确定正确的预期值,但这似乎违背了在提出问题之前知道答案的想法。

有关如何处理此问题的任何想法? 覆盖localtime 这看起来很极端。

谢谢!

我不认为在单元测试中计算答案的值有任何问题。 单元测试应该足够简单,以避免与复杂性相关的错误,但简单的时区计算可能不会跨越线。

但是,在这种特殊情况下,您可以将时区设置为固定值(或几个)作为测试的一部分。 请参阅此Stack Overflow帖子,了解有关在Perl中设置时区的信息

我不知道你的要求是什么,但你也许可以得到的东西做使用测试:: MockTime时间::模拟 ,这两种产品将取代localtime和朋友与行为,但是你想他们嘲笑的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM