Sus*_* -- 6 jquery backbone.js sinon
我刚刚开始使用sinon.js,我完全被术语所困扰.我已经使用了stubs,其中subview'srender方法被删除了.但对间谍的解释对我来说并不清楚.谁能解释这两者究竟有什么区别呢?
还想知道如果我想测试是否已将新模型添加到集合中,该方法会是什么?
我不是很熟悉sinon.js,但由于这些是一般的TDD术语而不是特定于sinon的术语,我想我仍然可以回答你的问题.
主要区别在于存根纯粹是为了"通过代码"; 除了保存虚拟值和方法之外,存根本身不会做任何事情.
另一方面,间谍是检查放入其中的值的存根,或者调用它们的方法.换句话说,两者之间的主要区别是断言语句:存根没有,而间谍有一些(或者它们存储测试代码中其他地方的断言值).
换一种说法:
var Stub = Backbone.Model.extend();
var stub = new Stub({value: 'test value'});
// This can be fed to any view for testing
var Spy = Backbone.Model.extend({
initialize: function() {
this.on('change:value', this.handleValueChange);
},
handleValueChange: function(value) {
assert(!isNaN(value));
};
value: 'test value'
});
var spy = new Spy({value: 'test value'});
// This can be fed to any view for testing AND it ensures that,
// if that view sets its "value", that that value is a number
Run Code Online (Sandbox Code Playgroud)
哦,回答:
还想知道如果我想测试是否已将新模型添加到集合中,该方法会是什么?
再一次,没有专门进入Sinon,有两个明显的地方可以"窥探"模型:模型本身及其集合.
您可以向模型添加事件处理程序(或硬连接到测试方法),模型将检查this.collection以确定是否添加了哪个集合.相反,您可以绑定事件或覆盖集合本身的方法,然后检查this.models.
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |