我即将构建一个小部件,并且我想使用Jasmine来测试代码,并且我想测试的一件事是changeHtml已被调用。以下是我计划构建小部件的一个粗略示例。我将如何使用茉莉花测试此代码?
var widget = function(userOptions){
var options = userOptions
var init = function(){
changeHtml();
};
var changeHtml = function(){
document.getElementById(options.widgetId).innerHTML = 'New and exiting things!';
};
init();
};
var myWidget = new widget({widgetId: 'widget-div'});
现在,由于changeHtml()
是私人(正确的短语?)的widget
功能,我不能窥探它,看它是否已被称为与否。
我现在唯一能想到的就是让所有东西都成为widget
的公共方法,但这看起来并不特别好,因为用户不需要/想要打电话给changeHtml()
他们的自我。
这将是什么解决方案?或者,我是否以错误的方式思考这个问题,最好是检查一下div是否已经改变了,而不是被调用的函数?
你的最后一句话总结一下。方法调用是一个实现细节。你想测试结果,它如何到达那里并不重要。 –