22 个版本 (9 个稳定版)
2.3.0 | 2024年7月19日 |
---|---|
2.2.0 | 2024年3月28日 |
2.1.0 | 2023年12月13日 |
2.1.0-rc1 | 2023年10月20日 |
0.14.0-beta1 | 2021年3月29日 |
#2 in #defi
每月139次 下载
用于 provwasm-tutorial
2MB
47K SLoC
provwasm-mocks
此软件包提供模拟器,用于对与 Provenance 区块链中自定义模块交互的 CosmWasm 智能合约进行单元测试。
许可证
此软件包是 provwasm 仓库的一部分,受 Apache License 2.0 许可证许可(请参阅 LICENSE)。
示例用法
// Example unit test:
// Uses provwasm mocks to test a resolve query against the provenance name module.
// ref: contracts/name/src/msg.rs
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(provwasm_std::Name)]
Resolve { name: String },
#[returns(provwasm_std::Names)]
Lookup { address: String },
}
// ref: contracts/name/src/contract.rs
use cosmwasm_std::testing::mock_env;
use cosmwasm_std::from_binary;
use provwasm_mocks::mock_dependencies;
use provwasm_std::Name;
#[test]
fn query_resolve() {
// Create provenance mock deps with a single bound name.
let mut deps = mock_dependencies(&[]);
deps.querier
.with_names(&[("a.pb", "tp1y0txdp3sqmxjvfdaa8hfvwcljl8ugcfv26uync", false)]);
// Call the smart contract query function to resolve the address for our test name.
let bin = query(
deps.as_ref(),
mock_env(),
QueryMsg::Resolve {
name: "a.pb".into(),
},
)
.unwrap();
// Ensure that we got the expected address.
let rep: Name = from_binary(&bin).unwrap();
assert_eq!(rep.address, "tp1y0txdp3sqmxjvfdaa8hfvwcljl8ugcfv26uync")
}
依赖项
~5.5–9MB
~176K SLoC