【发布时间】:2020-01-30 01:05:27
【问题描述】:
请注意我是初学者
我正在尝试为以下代码编写一组测试用例:
int binarySearch(Comparable[] objArray, Comparable searchObj) {
int low = 0;
int high = objArray.length - 1;
int mid = 0;
//iterative binary search algorithm
while (low <= high) {
mid = (low + high) / 2;
if (objArray[mid].compareTo(searchObj) < 0) {
low = mid + 1;
} else if (objArray[mid].compareTo(searchObj) > 0) {
high = mid - 1;
} else {
return mid;
}
}
//return target index position
if (objArray[mid].compareTo(searchObj) > 0) {
return mid;
} else
return mid + 1;
}
@Test
public void testBinarySearch() {
//Test for lower boundary of array
BinarySearch ob = new BinarySearch();
Comparable[] array = {10, 20, 30, 40, 50};
int result = ob.binarySearch(array, 5);
System.out.println("Index position should return 0. Result is: " + result);
}
如您所见,我已经为我的第一个测试用例编写了逻辑并且它返回了正确的结果。但是,我似乎无法弄清楚如何将其重写为 JUnit 测试,以便我还可以编写其他测试(例如测试数组的上边界)。
我不确定我应该使用 Assert 还是 assertArrayEquals。我以前从未使用过 JUnit,可能会忽略一些相对简单的东西。
【问题讨论】: