2
fn do_check(&mut self) -> Result<()> {
    let caller = self.env().caller();
    ...
}

関数のテスト関数を書いていdo_checkます。ここで、呼び出し元を設定したいのですが、その方法がわかりません。

#[cfg(test)]
mod tests {
    use super::*;
    use ink_lang as ink;

    #[ink::test]
    fn do_check_works() {
        let mut test = Test::new();
        // here I want to set a caller for calling do_check
        test.do_check();
        ...
4

1 に答える 1

3

fromink_envset_callerを使用して呼び出し元を設定できます。

let account = AccountId::from([0x1; 32]);
ink_env::test::set_caller::<ink_env::DefaultEnvironment>(account);

編集:現在、実験的な単体テスト エンジンが必要です。これをテスト mod の上に追加します。

#[cfg(feature = "ink-experimental-engine")]

toml ファイルに依存関係を追加します。

ink-experimental-engine = ["ink_env/ink-experimental-engine"]

詳細については、インク リポジトリの例を参照してください。

于 2021-11-03T18:20:26.197 に答える