我一直在查看本文的Jasmine单元测试。我找到了这个例子:
pack
此示例使用label.pack(side="top", fill="x")
和describe("Episode", function() {
beforeEach(function() {
this.episode = new Backbone.Model({
title: "Hollywood - Part 2"
});
});
it("should expose an attribute", function() {
expect(this.episode.get("title"))
.toEqual("Hollywood - Part 2");
});
});
中的 this.episode 。据我所知,JS不会像这样工作。 beforeEach
根本无法在describe block中使用?
答案 0 :(得分:3)
Jasmine引入了一种在beforeEach
,it
和afterEach
至this
关键字之间共享变量的新方法。
您还应该知道每个规范的beforeEach
,it
,afterEach
都有this
作为同一个空对象,为下一个规范设置为空。
<强> From Github 强>
对于每个测试(及其beforeEach / afterEach挂钩),jasmine设置 每个函数的接收者到最初为空的对象。这个 对象,在Jasmine的源代码中称为userContext,可以 分配给它的属性,并在每个结束时被吹走 测试。我们最近试图解决我们遇到的问题 切换到为此对象分配变量,而不是 在描述中声明它们然后分配它们。
由于以下原因,这种新方法被认为更好: