【发布时间】:2011-06-08 16:26:41
【问题描述】:
我对单元测试有点困惑。我看到了自动化测试之类的东西的价值。我认为也许一个很好的例子是帮助我理解的最好方法。假设我有一个我想要单元测试的二进制搜索功能。
现在在测试中,我想知道以下内容:搜索是否找到第一个元素、最后一个元素和其他元素?搜索是否正确比较了 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);
}
【问题讨论】:
标签: unit-testing testing