Solidity

我如何模擬可靠性測試的時間?

  • July 20, 2021

我的契約有一個到期日期,我想對其進行單元測試,但我不知道如何去做。如果我可以嘲笑契約的時間,那就太棒了。Google搜尋雖然沒有提供任何資訊。

作為一種通用的測試方法,您可以從生產契約創建另一個僅調試契約。第二個合約可以有方法來做任何事情——例如,將到期日期設置為now.

如果你想專門搞亂時間,TestRPC 有一個 RPC 方法來快進時間。請注意,您必須以某種方式將其集成到您的測試工具中,因為 web3 不附帶它。

我一直在讓我的契約從一個具有currTime()函式和testing布爾值的簡單契約派生出來。如果我設置testing為 true,currTime()則返回一個假時間,我可以使用addDays(uint days). 如果testing為假,則currTime()返回block.timestamp。我會檢查時間戳的每個地方,我都會打電話currTime()

引用自:https://ethereum.stackexchange.com/questions/15596