我们可以定义以下测试:spyOn(x, 'funk').andReturn(true);
如果我们接下来要定义:spyOn(x, 'funk').andReturn(false);
我们将收到一个错误消息,说funk
已经被监视。
我们如何有效地unspy
以便可以使用新的返回值重新侦听?
最佳答案
您可以重新训练间谍:
//--- CODE --------------------------
x = {
funk: function() {
return 1;
}
}
// --- SPECS -------------------------
describe('test x', function () {
it("trains spies", function () {
spyOn(x, 'funk');
x.funk.andReturn('a');
expect(x.funk()).toBe('a');
x.funk.andCallThrough();
expect(x.funk()).toBe(1);
});
});
在这里查看小提琴-http://jsfiddle.net/eitanp461/88kvnzx3/