如何在"之前获得Mocha测试名称"钩?

时间:2014-12-18 18:51:53

标签: javascript unit-testing mocha

我正在尝试在describe挂钩中获取当前before名称,如下所示:

describe('increasing 3 times', function() {

  before(function() {
    console.log('test name');
  });

  ...

});

我基本上想要在前钩子中检索'增加3次'字符串。

如何实现这一目标?

谢谢!

1 个答案:

答案 0 :(得分:5)

以下代码说明了如何执行此操作:

describe("top", function () {
    before(function () {
        console.log("full title:", this.test.fullTitle());
        console.log("parent title:", this.test.parent.title);
    });

    it("test 1", function () {});
});

使用spec记者运行,这将输出:

full title: top "before all" hook
parent title: top
    ✓ test 1 


  1 passing (4ms)

当Mocha调用您传递给各种函数的函数(describebeforeit等)时,this的值为{{1}对象。该对象的一个​​字段名为Context。这有点用词不当,因为它可以指向别的东西,而不是实际的测试。对于像test这样的钩子,它指向为before调用创建的当前Hook对象。在此对象上调用before将获得对象的层次结构名称:对象的自己的名称前面是包含它的测试套件的名称(fullTitle())。 describe对象还有一个Hook字段,指向包含挂钩的套件。该套件有一个parent字段,这是传递给title的第一个参数。