测试用例的钩子 HOOKS

本文的示例代码在 07.hook

1. 四个钩子(hook)

Mocha在 describe 块之中,提供测试用例的四个钩子:before()after()beforeEach()afterEach()。它们会在指定时机下执行。

describe('hooks', function() {

  before(function() {
    // 在本区块的所有测试用例之前执行
  });

  after(function() {
    // 在本区块的所有测试用例之后执行
  });

  beforeEach(function() {
    // 在本区块的每个测试用例之前执行
  });

  afterEach(function() {
    // 在本区块的每个测试用例之后执行
  });

  // test cases
});

2. 示例一,beforeEach

beforeEach.test.js 测试用例中,我们使用 beforeEach 方法在每个测试用例执行之前进行重置 foo 变量。

describe('beforeEach示例', function () {
    var foo = false;

    beforeEach(function () {
        foo = true;
    });

    it('修改全局变量应该成功', function () {
        expect(foo).to.be.equal(true);
    });
});

执行命令:

mocha test/beforeEach.test.js

3. 示例二,beforeEach 中进行异步操作

beforeEach-async.test.js 测试用例中, beforeEach 方法内使用了异步操作,依然需要调用 done 方法来通知。

describe("beforeEach示例-异步操作", function() {
    var foo = false;

    beforeEach(function(done) {
        setTimeout(function() {
            foo = true;
            done();
        }, 50);
    });

    it("全局变量异步修改应该成功", function() {
        expect(foo).to.be.equal(true);
    });
});

执行命令:

mocha test/beforeEach-async.test.js

results matching ""

    No results matching ""