我有一个对象必须在其自身内部创建一个对象的实例,以避免将状态泄漏到Factory
上的函数的其他调用,其中只有一个实例。
function Factory() {
}
Factory.prototype.create = function() {
var builder = new Builder(); //must be newed up
//...
}
但是,这使我无法对Factory
和Builder
的交互做出断言,因为我无法注入模拟构建器。
在JavaScript中,绕过这个问题并启用交互测试的惯用方法是什么。这是一种有效的方法吗?
Factory.prototype.create = function(builder) {
var builder = builder || new Builder(); //must be newed up
//...
}
答案 0 :(得分:0)
我通过注入一个返回构建器的函数来解决这个问题。该功能可以简单地存根。