rust 我如何用墨水设置呼叫者!合同单元测试功能?

7lrncoxx  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(134)
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();
        ...
ctzwtxfj

ctzwtxfj1#

您可以使用set_callerink_env设置调用者:

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

更多细节请参见ink-examples repo中的示例。

相关问题