Gre*_*con 8 javascript unit-testing jasmine
我正在尝试调试没有触发的jQuery.post上的间谍,所以作为一个完整性检查,我试过
spyOn(this.viewModel.requests, 'submitRequest').andReturn('fooz');
var ret = this.viewModel.requests.submitRequest();
expect(ret).toEqual('foo');
expect(this.viewModel.requests.submitRequest).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)
这失败了
期待'fooz'等于'foo'.
但是,当我改变'fooz'
,以'foo'
在参数andReturn
,测试失败
已经调用了submitRequest上的预期间谍.
间谍正在返回固定值,为什么会toHaveBeenCalled
失败?
我知道这不应该是解决方案,但你尝试过吗
var submitSpy = spyOn(this.viewModel.requests, 'submitRequest').andReturn('foo');
var ret = this.viewModel.requests.submitRequest();
expect(ret).toEqual('foo');
expect(submitSpy).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)
因为有时这会更一致