gpt4 book ai didi

jquery - spy 和 stub 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 22:32:00 24 4
gpt4 key购买 nike

我刚刚开始使用 sinon.js,我完全被这些术语难住了。我在 subview 的渲染方法中使用了 stub (stubs)。但 spy 的解释我不清楚。谁能解释一下这两者之间到底有什么区别?

还想知道如果我想测试新模型是否已添加到集合中,该方法是什么?

最佳答案

我不太熟悉 sinon.js ,但由于这些是一般的 TDD 术语,而不是特定于 sinon 的术语,我想我仍然可以回答你的问题。

主要区别在于 stub 的存在纯粹是为了“通过代码”; stub 本身除了保存虚拟值和方法之外不执行任何操作。

另一方面, spy 是 stub ,用于检查放入其中的值或调用它们的方法。换句话说,两者之间的主要区别在于断言语句: stub 没有,而 spy 有一些(或者它们在测试代码中的其他位置存储断言值)。

换句话说:

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

哦,回答一下:

Also was wondering what the approach would be if I want to test if a new model has been added to a collection?

再说一遍,无需专门了解Sinon,有两个明显的地方可以“监视”模型:模型本身及其集合。

您可以将事件处理程序添加到模型(或硬连接到模型上的测试方法)来检查 this.collection确定是否/哪个集合被添加到。相反,您可以绑定(bind)事件或覆盖集合本身的方法,然后检查 this.models .

关于jquery - spy 和 stub 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com