我對單元測試有點困惑。我看到了諸如自動化測試之類的東西的價值。我認爲一個好例子可能是幫助我理解的最好方式。可以說我有一個二進制搜索功能,我想單元測試。請解釋單元測試
現在在測試中,我想知道的東西,如:進行搜索找到的第一個元素,最後一個元素,以及其他元素?搜索是否正確比較unicode字符。搜索是否處理符號和其他「痛苦」字符。單元測試會覆蓋這個,還是我錯過了?你將如何爲我的二分查找編寫單元測試?
function search(collection, value){
var start = 0, end = collection.length - 1, mid;
while (start <= end) {
mid = start + ((end - start)/2);
if (value == collection[mid])
return mid;
if (collection[mid] < value)
end = mid - 1;
else
start = mid + 1;
}
return mid;
}
單元測試的僞代碼很可愛。
所以,我們可能有:
function testFirst(){
var collection = ['a','b','c','x','y','z'],first = 'a', findex = 0;
assert(seach(collection,first),findex);
}
function testLast(){
var collection = ['a','b','c','x','y','z'], last = 'z', lindex = 5;
assert(seach(collection,last),lindex);
}