我即將構建一個小部件,並且我想使用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是否已經改變了,而不是被調用的函數?
你的最後一句話總結一下。方法調用是一個實現細節。你想測試結果,它如何到達那裏並不重要。 –