A 类中的 isSorted() 实例方法有一个 bug:
public class A {
private int[] a;
public A(int[] a) { this.a = a; }
/** Return true if this A object contains an array sorted
* in nondecreasing order; else false. */
public boolean isSorted() {
for(int i=1; i<a.length-1; i++) {
if(a[i] < a[i-1]) return false;
}
return true;
}
}
编写一个 JUnit 测试方法 testIsSorted(),它会因为这个 bug 而失败,但当 bug 修复后会通过。(假设没有定义 setUp() 方法。)这是答案:
public void testIsSorted() {
int[] array = {2, 1};
A haha = new A(array);
assertFalse(haha.isSorted);
}
首先,错误在哪里,我似乎无法找到它。其次,它不应该是 assertTrue(haha.isSorted) 因为当它的 assertFalse 它将通过,因为数组是按降序排列的,因此 isSorted 将返回 false 并且 assertFalse(false) 将返回 true where-as assertTrue(false) 将返回错误的。