【问题标题】:Fast forward time when writing Substrate Runtime Test编写 Substrate 运行时测试时的快进时间
【发布时间】:2019-07-19 02:32:37
【问题描述】:

我正在使用 Substrate 运行时编写一个拍卖类型的应用程序。在编写测试用例时,如何将区块链时间(从<timestamp::Module<T>>::get()检索到的)快进,以便达到拍卖结束时间并测试结束逻辑?

谢谢。

【问题讨论】:

    标签: unit-testing rust substrate parity-io


    【解决方案1】:

    您可以使用Timestamp::set_timestamp 将时间戳更改为您想要的任何值。例如Timestamp::set_timestamp(42);

    您可以查看srml-timestamp 的测试示例

    https://github.com/paritytech/substrate/blob/fe7f6aff197cd68e102539a42df1134d600b4584/srml/timestamp/src/lib.rs#L368

    【讨论】:

    • 请注意,这不会触发任何其他函数,例如 on_finalizeon_initialize。您必须手动执行此操作。
    • 快进块(而不是时间)的跟踪问题:github.com/paritytech/substrate/issues/2818
    • 此外,您可能还需要致电session::rotate_session()
    猜你喜欢
    • 1970-01-01
    • 2022-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多