[英]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.