我有隱藏和顯示基於什麼工廠爲我提供了我的網頁上項目的功能:如何(而且應該)測試茉莉花中的UI元素可見性?
function toggleMenuItems(config) {
// hide all our elements first
$(".js-quickMenuElement").hide();
config.data = config.data || [];
config.data.forEach(function (d) {
if (d === config.viewConfigCatalog.CalendarLink) {
$("#CalendarLink.js-quickMenuElement").show();
}
if (d === config.viewConfigCatalog.ProductCreation) {
$("#ProductCreation.js-quickMenuElement").show();
}
// etc etc etc
});
};
我們已經使用茉莉花我們的JavaScript單元測試和我們討論我們是否應該測試此功能。 有人說我們不需要這樣做,因爲測試是將視圖耦合到javascript測試,但同時,如果不是jquery .show和.hide函數那些是包裝器或其他函數,我們會測試它們。
繼此之後,最好的測試方法是什麼? 製作一個接受字符串並在jQuery select中注入字符串名稱的包裝函數似乎是錯誤的。 我們認爲對是刺探另一種選擇($ .fn,「秀」),但只會讓我們測試,如果節目被稱爲的時間,而不是什麼隱藏的X量...
感謝,
DOM不會在茉莉測試存在的,所以。是(「:可見」)是不是我可以甚至想要做的事情。 問題的確是我們是否應該測試這個功能。移動邏輯將工作,但你仍然耦合視圖與測試,因爲你會傳遞jQuery選擇器字符串... – LanFeusT
什麼引發了你是否應該測試這個代碼的問題?通過使用「config.viewConfigCatalog」值的鍵值對列表作爲鍵,並選擇字符串作爲值,可以簡化一點。然後你可以測試這個功能。此後您必須確保您的KVP列表是正確的。 – Chris
我們不想讓測試與視圖耦合,這是開始測試與否的問題,但我喜歡您的解決方案。謝謝! – LanFeusT