Solidity
我如何模擬可靠性測試的時間?
我的契約有一個到期日期,我想對其進行單元測試,但我不知道如何去做。如果我可以嘲笑契約的時間,那就太棒了。Google搜尋雖然沒有提供任何資訊。
作為一種通用的測試方法,您可以從生產契約創建另一個僅調試契約。第二個合約可以有方法來做任何事情——例如,將到期日期設置為
now
.如果你想專門搞亂時間,TestRPC 有一個 RPC 方法來快進時間。請注意,您必須以某種方式將其集成到您的測試工具中,因為 web3 不附帶它。
我一直在讓我的契約從一個具有
currTime()
函式和testing
布爾值的簡單契約派生出來。如果我設置testing
為 true,currTime()
則返回一個假時間,我可以使用addDays(uint days)
. 如果testing
為假,則currTime()
返回block.timestamp
。我會檢查時間戳的每個地方,我都會打電話currTime()
。