Javascript TypeError:无法读取属性';args';用茉莉花做间谍的时候

Javascript TypeError:无法读取属性';args';用茉莉花做间谍的时候,javascript,backbone.js,tdd,jasmine,bdd,Javascript,Backbone.js,Tdd,Jasmine,Bdd,我将跟随《主干基础知识》一书()中的教程,并尝试创建一个间谍来测试验证 下面的代码在my SpecRunner中产生以下错误: 'TypeError:无法读取未定义的属性'args' it('Can contain custom validation rules, and will trigger an invalid event on failed validation.', function() { var errorCallback = jasmine.createSpy('-i

我将跟随《主干基础知识》一书()中的教程,并尝试创建一个间谍来测试验证

下面的代码在my 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;
与:

这似乎就是jasmine文档中使用的内容,但仍然存在相同的问题


非常感谢您的帮助

您链接到的教程正在使用Jasmine 1.3,您可能正在使用。间谍的语法发生了很大的变化

你要找的线路是

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

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

您链接到的教程正在使用Jasmine 1.3,您可能正在使用。间谍的语法发生了很大的变化

你要找的线路是

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

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

谢谢你,埃里克。今晚回家后我会查一下。谢谢埃里克。我今天晚上回家后会检查一下。