正确使用sinon mocks

时间:2015-12-17 02:34:42

标签: unit-testing sinon sinon-chai

我正在使用sinon mock如下

var sandbox = sinon.sandbox.create();
var mockPictureUrl = "http://test.com/test.gif"; 
var opts = { getUserPictureURL: function () {} };
var mock = sandbox.mock(opts);  
mock.expects("getUserPictureURL").once().returns(mockPictureUrl);        expect(AuthController.getUserProfilePictureUrl()).to.equal(mockPictureUrl);
mock.verify();
mock.restore();

如果我们调用sandbox.restore(),我们必须调用mock.restore()吗?

这是使用sinon嘲讽的正确方法吗?

1 个答案:

答案 0 :(得分:2)

你是对的,sandbox.restore()你可以恢复沙盒中的所有间谍,模拟和存根对象,如果测试中有很多对象,那么非常方便,因为不需要单独恢复伪造的对象。

您可以在Sinon.JS webpage中了解有关沙箱实用程序的更多信息。

如果您只模拟一个对象,则可以决定不创建沙箱,而是直接模拟和恢复该对象。