因此,通常應該先學習單元測試的基本知識。 我已經閱讀了幾次關於單元測試的內容。但我可能缺乏良好的知識。 通常的方法是首先學習基礎知識,然後應用到您的應用程序。 不幸的是我沒有那麼多時間。這當然不是你的問題,在這裏有降低風險的風險,但我抓住機會。爲JavaScript應用程序編寫單元測試
這是一個非常小的JavaScript應用程序。我在尋找的是將單元測試的理論與這個小小的項目聯繫起來,並理解如何構建測試,基本上是測試什麼。
一個JavaScript文件(app.js)在另一個文件(funcs.js)中調用函數以從json格式的資源獲取結果。 app.js然後將驗證解碼的json是否長度大於0. 在這種情況下,它會在此json結構中的帖子之間進行迭代。對於每次迭代,app.js都會調用funcs.js中的函數從json中爲一篇文章提取數據,同時生成html結構,該結構返回到app.js.
最後,app.js將使用funcs.js提供的html結構填充html元素(在app.html中)。
所以我現在需要創建幾個單元測試。我猜測最好的部分是func.js?該文件包含一些功能。例如打開,解析和返回json結果的函數。或者獲取json結構的字段(迭代過程中)並構建html元素的函數。然後返回它。
我對嗎?我該如何測試?這可能是一個好策略:
我創建一個test.js文件。我在funcs.js中找到了一些函數(相關的)。我試圖調用它們幾次,同時傳遞好的和壞的參數(例如,首先是現有資源,然後是請求json資源的函數的空參數資源)。
林還是有點不確定如何測試將返回HTML元素的部件。如果你能提出一些建議,那將會很棒。
----- -----編輯
林添加一些代碼,以便更好地瞭解情況。
在funcs.js:
function get_resource (url, method){
var xhReq = new XMLHttpRequest();
xhReq.open(method, url, false);
xhReq.send(null);
var json = xhReq.responseText;
var obj = JSON.parse(json);
return obj;
}
function set_text(value, id){
if(value !== undefined){
document.getElementById(id).textContent = value;
}
}
function set_img(value, id, img_class){
if(value !== undefined && imageExists(value)){
var img = document.createElement("img");
img.src = value;
img.className = img_class;
document.getElementById(id).appendChild(img);
}
}
在app.js:
var json = get_resource('example.com', 'GET');
set_text(json.name, 'title');
set_img(json.src, 'main_div', 'img_class');
app.html:
<body>
<div id="title"></div>
<div id="main_div"></div>
</body>
請出示一些代碼。 – Ben
您的funcs.js聽起來像單元測試的合理候選者,如果它沒有掛接到UI。你的app.js也可以進行單元測試,具體取決於它的性質,它與UI元素的連接程度。您可以更好地將視圖與動態功能分開,對於測試目的來說更好。 – ManoDestra
我添加了幾行代碼以更好地理解情況。 – oderfla