茉莉花间谍命名
Jasmine spy naming
在 Jasmine 测试中创建间谍时,必须传递间谍名称,例如:
var spy = jasmine.createSpy('spy');
...
expect(spy).toHaveBeenCalled();
- 这些名字的用途是什么?
- 命名间谍有什么限制吗?全球唯一性?
- 这样的名字在我看来是多余的。是否可以避免在我的代码中指定它们?
首先,让我们做一个简单的实验(在 Jasmine 2.0 上测试):
it("sandbox playground", function() {
var twin1 = jasmine.createSpy('twin brother').and.returnValue({});
var twin2 = jasmine.createSpy('twin brother').and.returnValue({});
var unnamed = jasmine.createSpy(undefined).and.returnValue({});
var skipped = jasmine.createSpy().and.returnValue({});
expect(twin1).toHaveBeenCalled();
expect(twin2).toHaveBeenCalled();
expect(unnamed).toHaveBeenCalled();
expect(skipped).toHaveBeenCalled();
});
结果:
Firefox 56.0.0 (Windows 7 0.0.0) Sample Tests. sandbox playground FAILED
Expected spy twin brother to have been called.
@tests/sampleTests.spec.js:37:9
Expected spy twin brother to have been called.
@tests/sampleTests.spec.js:38:9
Expected spy unknown to have been called.
@tests/sampleTests.spec.js:39:9
Expected spy unknown to have been called.
@tests/sampleTests.spec.js:40:9
所以,回答你的问题:
- 当某些断言失败时,它用于有意义的消息。
正如我们所见,框架本身不会检查它们,所以正式来说没有任何。
但无论如何我建议引入一些约定
自己有可读和有意义的测试结果,以尽量减少
调试失败测试用例的努力。
- 如我们所见,这是可能的。但如前所述,我建议不要这样做。
在 Jasmine 测试中创建间谍时,必须传递间谍名称,例如:
var spy = jasmine.createSpy('spy');
...
expect(spy).toHaveBeenCalled();
- 这些名字的用途是什么?
- 命名间谍有什么限制吗?全球唯一性?
- 这样的名字在我看来是多余的。是否可以避免在我的代码中指定它们?
首先,让我们做一个简单的实验(在 Jasmine 2.0 上测试):
it("sandbox playground", function() {
var twin1 = jasmine.createSpy('twin brother').and.returnValue({});
var twin2 = jasmine.createSpy('twin brother').and.returnValue({});
var unnamed = jasmine.createSpy(undefined).and.returnValue({});
var skipped = jasmine.createSpy().and.returnValue({});
expect(twin1).toHaveBeenCalled();
expect(twin2).toHaveBeenCalled();
expect(unnamed).toHaveBeenCalled();
expect(skipped).toHaveBeenCalled();
});
结果:
Firefox 56.0.0 (Windows 7 0.0.0) Sample Tests. sandbox playground FAILED
Expected spy twin brother to have been called.
@tests/sampleTests.spec.js:37:9
Expected spy twin brother to have been called.
@tests/sampleTests.spec.js:38:9
Expected spy unknown to have been called.
@tests/sampleTests.spec.js:39:9
Expected spy unknown to have been called.
@tests/sampleTests.spec.js:40:9
所以,回答你的问题:
- 当某些断言失败时,它用于有意义的消息。
正如我们所见,框架本身不会检查它们,所以正式来说没有任何。
但无论如何我建议引入一些约定 自己有可读和有意义的测试结果,以尽量减少 调试失败测试用例的努力。
- 如我们所见,这是可能的。但如前所述,我建议不要这样做。