接入骨干视图的功能以制作 sinon 存根
Accesing a backbone view's function to make a sinon stub
我正在开发骨干应用程序,我必须使用 sinon.js 和 Qunit.js 对其进行单元测试。场景是我有一个扩展基本视图的 carView,而基本视图扩展了主干的视图。
我有一个函数说 buildFormUrl 在汽车视图中返回一个字符串。字符串值根据用户操作进行更改。
是否可以使用 sinon.stub 制作 buildFromUrl 存根的存根并调用存根函数,然后检查返回值?
主干代码片段:
var CarSearchView = BaseView.extend({
intitalize : function(){
//some code
},
buildFormUrl: function(baseUrl){
// process a different form url based on new/used selection
var newUsedToggleValue = this.$('#cars-form-new-used-select').val(),
url = baseUrl;
if (newUsedToggleValue === 'used') {
url += 'for-sale/searchresults.action';
} else {
url += 'go/search/newBuyIndex.jsp';
}
return url;
}
});
锡农代码片段:
QUnit.test('_buildURLForm function', function(){
QUnit.expect(1);
var BuildFormURLStub = Sinon.stub(CarSearch.prototype, 'buildFormUrl');// building the sinon stub
var toggleButton = $(SampleHtml).find('cars-new-used-toggle');
$(toggleButton).first().click(); //clicking the button
var baseURL = "http:''www.cars.com";
var output = Sinon.once(BuildFormURLStub.withArgs(baseURL)); // passing the argument and and calling the function using sinon once![enter image description here][1]
var Expected = baseURL + 'for-sale/searchresults.action';
QUnit.deepEqual(output,Expected,"For new Toggle button clicked");
});
收到错误" 函数未定义"
'undefined' 不是一个函数(评估 'Sinon.once(BuildFormURLStub.withArgs(baseURL))')
TypeError: 'undefined' 不是函数 (评估 'Sinon.once(BuildFormURLStub.withArgs(baseURL))')
您需要传入一个对象而不是原型:
var carSearchInstance = getInstanceSomehow();
var BuildFormURLStub = Sinon.stub(carSearchInstance , 'buildFormUrl');
相关文章:
- 未调用 Sinon 存根
- Sinon:存根和整个对象,并将其替换为新对象
- sinon 存根嵌套在描述/请求函数中
- Sinon-带有回调的存根函数-导致测试方法超时
- 在sinon中存根嵌套函数调用
- 在 Sinon 中存根整个班级进行测试
- 使用 Sinon 创建 document.getSelect 的存根
- 接入骨干视图的功能以制作 sinon 存根
- 如何使用 sinon 存根/模拟从“超类”复制的依赖项方法
- Sinon 存根超时 Phantomjs
- 我应该如何避免使用Sinon.js存根属性
- 我如何使用sinon存根函数为neo4j Thingdom模块
- 用sinon存根在角控制器构造中调用的范围方法
- 在同一文件中使用Sinon的存根方法
- 当断言函数调用时,chaispy不能识别Sinon存根函数
- 用Sinon存根一个React组件方法
- 存根骨干听用 sinon 回调
- 如何使用sinon存根new Date()
- 当与摩卡手表一起使用时,Sinon存根有奇怪的行为
- sinon.js存根-如何存根async.map