Hardhat 测试脚本

428 阅读1分钟

npx hardhat coverage --testfiles "test/registry/*.ts"

指定单一文件需要引号,斜杠必须是正斜杠

捕获异常

const errExp = new Error("No expected error occurred");

await contract
.function(args)
.then(() => {
  throw errExp;
})
.catch((error) => {
  expect(error.message).to.include("error message");
});

await expect(greeter.revertTest(5, 5)).to.be.revertedWith("a <= 10");

 await expect(greeter.revertTest(5, 5)).to.be.rejectedWith("a <= 10");

设置区块信息

it("", async () => { 
  await ethers.provider.send("evm_increaseTime", [day]);
  await ethers.provider.send("evm_mine");
  await greeter.blockTimeTest(); 
});
it("", async () => { 
let value = 10000 - block - 1; //快速推进到100000区块前一个 
await ethers.provider.send("hardhat_mine", [convertNum(value]); 
await greeter.blockNumberTest(); 
});

设置时间

  await ethers.provider.send("evm_increaseTime", [5 * 60]);
  await ethers.provider.send("evm_mine");

事件解析

const tx = await contract
  .function(args);

const receipt = await tx.wait();

for (const log of receipt.logs) {
  for (const topic of log.topics) {
    if (topic == eventTopic) {
      const parsedLog = iface.parseLog(log);
      name = parsedLog.args.name;
    }
  }
}