Contract Test Snippet是一款专门为Hardhat框架和ethers.js设计的VSCode代码片段,旨在帮助开发者更高效地编写测试文件。通过提供一系列常用函数,简化测试开发流程,提升开发效率。
语言支持:
可用代码片段:
getRevertMsg:快速生成错误信息字符串。
前缀:revert
, revertMsg
, getRevertMsg
const getRevertMsg = (msg: string): string =>
`VM Exception while processing transaction: reverted with reason string '${msg}'`;
expectRevert:检查交易是否因特定错误信息而回退。
前缀:er
, expectRevert
, revert
await expect().to.be.revertedWith(getRevertMsg("Example Error Msg"));
takeSnapshot:创建区块链快照。
前缀:takesnapshot
, tsnapshot
async function takeSnapshot() {
return network.provider.send("evm_snapshot", []);
}
revertToSnapShot:回退到指定的快照。
前缀:rs
, revertsnapshot
async function revertToSnapShot(id: string) {
await network.provider.send("evm_revert", [id]);
}
advanceTime:增加指定时间。
前缀:advance
, at
async function advanceTime(time: number) {
await network.provider.send("evm_increaseTime", [time]);
}
advanceBlock:生成新区块。
前缀:advance
, ab
async function advanceBlock() {
await network.provider.send("evm_mine", []);
}
advanceTimeAndBlock:增加时间并生成新区块。
前缀:advance
, atb
async function advanceTimeAndBlock(time: number): Promise {
await advanceTime(time);
await advanceBlock();
return Promise.resolve(ethers.provider.getBlock("latest"));
}
numberToBytes32Hex:将数字转换为32字节十六进制格式。
前缀:n2b
, number2bytes
, nb
hexZeroPad(hexlify(number), 32);
newTestCase:创建新的测试用例。
前缀:it
it("", async () => {});
newTestCategory:创建新的测试类别。
前缀:describe
describe("", () => {});
贡献:
我们欢迎任何形式的贡献来改进这个工具。如果您有任何问题,请创建一个issue。
享受开发!
本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:study_golang@163.com