以下是说明了如何可以做到这一点代码:与spec
记者
describe("top", function() {
before(function() {
console.log("full title:", this.test.fullTitle());
console.log("parent title:", this.test.parent.title);
});
it("test 1", function() {});
});
运行,这将输出:
full title: top "before all" hook
parent title: top
✓ test 1
1 passing (4ms)
当摩卡调用传递给它的各种功能的功能( describe
,before
,it
等)this
的值是Context
的对象。此对象的其中一个字段被命名为test
。这有点不恰当,因为它可以指向除实际测试之外的其他事物。在像before
这样的钩子的情况下,它指向为before
调用创建的当前Hook
对象。在此对象上调用fullTitle()
将为您提供对象的分层名称:对象自己的名称前面是包含它的测试套件名称(describe
)。 A Hook
对象还有一个指向包含挂钩的套件的parent
字段。该套件有一个title
字段,它是传递给describe
的第一个参数。
如果摩卡没有为此提供API,则可以将该名称存储在变量中。尽管如此,它不会阅读。 –
真的..我试图避免这种情况。 –