1

我正在使用 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 模拟的正确方法吗?

4

1 回答 1

2

你是对的,sandbox.restore()你恢复了沙箱内的所有被监视、模拟和存根的对象,如果你的测试中有很多对象是非常方便的,因为不需要单独恢复伪造的对象。

您可以在Sinon.JS 网页中阅读有关沙盒实用程序的更多信息。

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

于 2016-01-28T13:52:58.990 回答