这是一个假设的Mocha测试,用于验证ObjectUser#useObject
调用Object#callMe
。
describe('ObjectUser', function() {
describe('#useObject', function() {
it('calls `callMe`, maybe', function(done) {
var objectMock = { callMe: sinon.spy() };
new ObjectUser().useObject(objectMock).done(function() {
expect(objectMock.test).to.have.been.calledOnce
done();
});
});
});
});
在这个测试中,我创建了一个模拟对象,用Sinon.JS间谍替换了我想测试的方法;我将模拟传递给我正在测试的方法;并且我使用chai-sinon
验证了间谍被调用一次。
但是,当TypeError
尝试调用ObjectUser#useObject
上的方法(让我们称之为object
)时,Object#log
的测试失败并且undefined
在我的模拟中未定义。
有没有方便的方法来制作一个“漂亮的模拟”,例如,用function() {}
替换TypeError
方法,以避免测试失败undefined
s而不用