我正在关注Backbone Fundamentals书籍(http://addyosmani.github.io/backbone-fundamentals/#jasmine)中的一个教程,我正在尝试创建一个间谍来测试验证。
以下代码在我的SpecRunner中产生以下错误:
'TypeError:无法读取未定义'
的属性'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();
这似乎是茉莉花文档中使用的内容,但仍然是同样的问题。
非常感谢任何帮助!
答案 0 :(得分:3)
您链接的教程使用的是Jasmine 1.3,您可能正在使用Jasmine 2.0。间谍的语法发生了很大变化。
您正在寻找的是
var errorArgs = errorCallback.calls.mostRecent().args;
或者,
var errorArgs = errorCallback.calls.argsFor(0);