簡體   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