簡體   English   中英

茉莉花間諜命名

[英]Jasmine spy naming

Jasmine測試中創建間諜時,必須傳遞間諜名稱,例如:

var spy = jasmine.createSpy('spy');
...
expect(spy).toHaveBeenCalled();
  1. 這些名稱的目的是什么?
  2. 間諜的命名是否存在任何限制,例如全局唯一性?
  3. 在我看來,這樣的名字似乎是多余的。 是否可以避免在我的代碼中指定它們?

首先,讓我們做一個簡單的實驗(在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

因此,回答您的問題:

  1. 當某些斷言失敗時,它用於發送有意義的消息。
  2. 如我們所見,框架本身不檢查它們,因此形式上沒有任何檢查。

    但是無論如何,我還是建議您為自己引入一些約定,以便獲得可讀且有意義的測試結果,以最大程度地減少調試失敗的測試用例的工作量。

  3. 如我們所見,這是可能的。 但是如上所述,我建議不要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM