mocha是一款运行在nodejs上的测试框架,支持同步和异步测试,同时还支持TDD,BDD等多种测试风格。
一款运行在nodejs上的测试框架,支持同步和异步测试,同时还支持TDD,BDD等多种测试风格
import { expect } from "chai";
import { ethers } from "hardhat";
describe("Adoption", function() {
async function getInitAdopt() {
const Adoption= await ethers.getContractFactory("Adoption");
const adoption = await Adoption.deploy();
return { adoption };
}
describe("adopt", () =>{
it("Is there a petid equal to 9",async () => {
const {adoption} = await getInitAdopt();
adoption.adopt(9).then((data) => {
expect(data).to.equal(9);
});
});
});
describe("getAdopters" , () => {
it("Owner of petId 9 should be record", async () => {
const {adoption} = await getInitAdopt();
adoption.adopters(9).then((data) => {
expect(data).to.equal(adoption.address);
});
});
});
});
describe->函数我们称为测试套件,它的核心功能是来描述测试的流程 it->函数我们称为一个测试单元,它的功能是来执行具体的测试用例
describe('检查:函数执行', function () {
before(function() {
console.log('😁before钩子触发');
});
describe('测试:正常流', function() {
it('类型返回: [object JSON]', function (done) {
setTimeout(() => {
assert.equal(函数(JSON), '[object JSON]');
done();
}, 1000);
});
it('类型返回: [object Number]', function() {
assert.equal(函数(1), '[object Number]');
});
});
describe('测试:异常流', function() {
it('类型返回: [object Undefined]', function() {
assert.equal(函数(undefined), '[object Undefined]');
});
});
after(function() {
console.log('😭after钩子触发');
});
});
before: 在执行测试套件之前触发该钩子 after:在测试套件执行结束后触发该钩子 beforeEach:在每个测试单元执行之前触发该钩子 afterEach:在每个测试单元执行结束后触发该钩子
it('类型返回: [object JSON]', function (done) {
setTimeout(() => {
assert.equal(getTag(JSON), '[object JSON]');
done();
}, 1000);
});
mocha支持两种方式的异步代码,一种是回调函数直接返回一个Promise,一种是支持在回调函数中传参数done,手动调用done函数来结束用例
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!