我正在使用Mocha和Sinon进行javascript 单元测试。我想测试在某些情况下是否调用某种方法。
但是,到目前为止,我无法管理仅来测试方法是否被调用。为了更清楚,我想要一个假的方法来替换实际的方法,因为我不想模拟我的整个应用程序状态来使这个简单的测试通过。
这是我的实际测试代码:
it('calls the handleResults method when its model syncs', function () {
var spy = sinon.stub( this.appview, 'handleResults' );
this.appview.model.fetch();
server.requests[0].respond( 200,
{ "Content-Type": "application/json" },
JSON.stringify( [ { id: "casa", text: "Something" } ] )
);
spy.should.have.been.called;
});
正在调用真正的this.appview.handleResults
方法,而我想调用假的版本,除了检查它是否被调用之外别无其他。
我做错了什么?
答案 0 :(得分:0)
文档很清楚,通过使用stub
,原始函数将被mock替换,不会被调用:
作为间谍,存根可以是匿名的,也可以包装现有的功能。 使用存根包装现有函数时,原始函数 不被称为。
和
var stub = sinon.stub(object,“method”);
用一个替换object.method 存根功能。可以通过调用恢复原始功能
object.method.restore();
(or stub.restore();
)。抛出异常 如果属性不是一个功能,以帮助避免拼写错误 存根方法。