
Photo by
wsd983320987
【完全保存版】AstarのWASMコントラクトにおける経過時刻のテストについて
今回は、経過時間のテストをどうやるのかについて書いていきます。
テスト環境では現在時刻がデフォルトで0なので、工夫が必要です。
1 set_block_timestamp関数について
これは、テストコード上で、タイムスタンプの設定を行えます。

2 現在時刻の取得について
現在時刻の取得は「block_timestamp」関数で行えます。
しかし、テスト環境の場合は、0が返ります。

そのため、経過時間のテストを行うには工夫が必要です。
3 経過時間のテストについて
現在時刻が0で返ってくるため、これを利用してテストを行います。
下のように「set_block_timestamp」に61秒を設定しているのは、経過時間ではなく、現在時刻です。
つまり、標準時が始まってから61秒後の世界です。

しかし、元々は現在時刻が0だったため(世界は始まったばかり)、61 - 0 = 61 で経過時間も同様に61秒となります。
そのため、block_timestampのデフォルトで0が返ってこようが、経過時間のテストを行うことが可能です。
今回は以上です。
いいなと思ったら応援しよう!
