我正在尝试在describe
挂钩中获取当前before
名称,如下所示:
describe('increasing 3 times', function() {
before(function() {
console.log('test name');
});
...
});
我基本上想要在前钩子中检索'增加3次'字符串。
如何实现这一目标?
谢谢!
答案 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调用您传递给各种函数的函数(describe
,before
,it
等)时,this
的值为{{1}对象。该对象的一个字段名为Context
。这有点用词不当,因为它可以指向别的东西,而不是实际的测试。对于像test
这样的钩子,它指向为before
调用创建的当前Hook
对象。在此对象上调用before
将获得对象的层次结构名称:对象的自己的名称前面是包含它的测试套件的名称(fullTitle()
)。 describe
对象还有一个Hook
字段,指向包含挂钩的套件。该套件有一个parent
字段,这是传递给title
的第一个参数。