簡體   English   中英

TypeError:在使用Jasmine創建間諜時無法讀取屬性'args'

[英]TypeError: Cannot read property 'args' when creating spy with Jasmine

我正在按照Backbone Fundamentals一書中的教程( http://addyosmani.github.io/backbone-fundamentals/#jasmine )進行操作,並嘗試創建一個間諜來測試驗證。

下面的代碼在我的SpecRunner中產生以下錯誤:

'TypeError:無法讀取'undefined'屬性'args'

it('Can contain custom validation rules, and will trigger an invalid event on failed validation.', function() {

    var errorCallback = jasmine.createSpy('-invalid event callback-');

    var todo = new Todo();

    todo.on('invalid', errorCallback);

    todo.set({done:'a non-boolean value'});

    var errorArgs = errorCallback.mostRecentCall.args;

    expect(errorArgs).toBeDefined();
    expect(errorArgs[0]).toBe(todo);
    expect(errorArgs[1]).toBe('Todo.done must be a boolean value.');
});

我搜索得很高,但收效甚微。 我也嘗試過更換:

var errorArgs = errorCallback.mostRecentCall.args;

有:

var errorArgs = errorCallback.calls.mostRecent();

這似乎是在茉莉花文檔中使用的,但仍然是同樣的問題。

任何幫助深表感謝!

您鏈接的教程使用的是Jasmine 1.3,您可能正在使用Jasmine 2.0 間諜的語法改變了很多。

你要找的那條線是

var errorArgs = errorCallback.calls.mostRecent().args;

或者,

var errorArgs = errorCallback.calls.argsFor(0);

暫無
暫無

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

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