2
我在JavaScript文件中有一个自调用函数。这样的事情:单元测试自调用函数
com.renderer = (function(){
render(data){
}
.....other functions
return{
init : function(){
$(document).ready(function(){
jsonData = fetchFromServer();
render(jsonData);
});
}
}
})().init();
我在想如何进行单元测试。我正在使用JSUnitTestDriver。如果我能以某种方式从外部注入jsonData
到渲染函数,那会很好,但这对我来说似乎是不可能的。
任何建议或替代?
我真的不想删除函数的自我调用性质。为了单元测试的目的,改变我认为好的设计是否真的有意义? (在这种情况下,通常不是)
注意:运行测试时,我无法与服务器交谈。
datafetcher在哪里定义?我的这个设计的重点在于避免污染全局命名空间。谢谢。 – ChrisOdney
你没有得到答案的原因是因为为了让某件东西成为可测试的东西,你必须能够掌握它 - 你的设计不提供任何处理。一旦你的代码运行,它的封闭完全封闭,你的测试代码没有任何工作要做。为了测试这个代码,你必须做这里提出的建议并创建一些参考。 –