为 isSorted() 方法创建 JUnit 测试用例的最佳方法是什么?
What is the best way to create a JUnit test case for the isSorted() method?
所提供的测试 isSorted()
方法的 JUnit 测试用例有什么问题?该方法只是检查 int 数组是否按升序排列。我正在尝试彻底测试该方法,但不确定从哪里开始。例如:检查数组是否为空或其中只有一个元素。感谢任何帮助。
public class CheckArray {
/**
* Returns true if the given array is sorted in ascending order.
*/
public static boolean isSorted(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
return false;
}
}
return true;
}
}
public class CheckArrayTest {
@Test
public void isSorted() {
int[] array = { 2, 1 };
CheckArray haha = new CheckArray(array);
assertFalse(haha.isSorted(null));
}
创建单元测试的最佳方法是在创建要测试的实际方法之前。
您分析了您的方法应该做什么,以及它应该如何针对每个可能的输入发挥作用。在哪些情况下 return 是正确的?对于哪个输入 return false?什么时候应该抛出异常? ...
然后你为每个案例编写一个单元测试。
一旦你这样做了,你就可以编写实际的方法,看看它是否符合你的单元测试。
编辑:也很重要,实际存在的测试方法。您正在测试 isIntArraySorted
方法,但该方法不存在,您应该测试 isSorted
方法。
检查数组是否为空或只有一个元素的结果是合理的测试。
同时检查:
- 具有相同元素的二元素数组
- 2 个元素数组,两个元素的顺序不相等
- 3个元素数组,最大元素在开始、中间和结束位置。
我不确定我是否会测试很多其他内容(可能是空输入情况)。最终,您只需要测试让您对它的正确性有合理的信心;您可以在不增加信心的情况下添加更多测试。
或者,您可以围绕您对方法工作原理的看法来构建测试,例如
- 如果我有一个数组,此方法 return 为真,它会做什么 return 如果我向最后一个元素添加一个元素{小于、等于、大于}结尾? (希望假,假,真)
- 如果我有一个数组,但此方法 return 为 false,它会做什么 return 如果我将元素 {小于、等于、大于} 最后一个元素添加到结尾? (希望在所有情况下都是错误的)
所提供的测试 isSorted()
方法的 JUnit 测试用例有什么问题?该方法只是检查 int 数组是否按升序排列。我正在尝试彻底测试该方法,但不确定从哪里开始。例如:检查数组是否为空或其中只有一个元素。感谢任何帮助。
public class CheckArray {
/**
* Returns true if the given array is sorted in ascending order.
*/
public static boolean isSorted(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
return false;
}
}
return true;
}
}
public class CheckArrayTest {
@Test
public void isSorted() {
int[] array = { 2, 1 };
CheckArray haha = new CheckArray(array);
assertFalse(haha.isSorted(null));
}
创建单元测试的最佳方法是在创建要测试的实际方法之前。
您分析了您的方法应该做什么,以及它应该如何针对每个可能的输入发挥作用。在哪些情况下 return 是正确的?对于哪个输入 return false?什么时候应该抛出异常? ...
然后你为每个案例编写一个单元测试。 一旦你这样做了,你就可以编写实际的方法,看看它是否符合你的单元测试。
编辑:也很重要,实际存在的测试方法。您正在测试 isIntArraySorted
方法,但该方法不存在,您应该测试 isSorted
方法。
检查数组是否为空或只有一个元素的结果是合理的测试。
同时检查:
- 具有相同元素的二元素数组
- 2 个元素数组,两个元素的顺序不相等
- 3个元素数组,最大元素在开始、中间和结束位置。
我不确定我是否会测试很多其他内容(可能是空输入情况)。最终,您只需要测试让您对它的正确性有合理的信心;您可以在不增加信心的情况下添加更多测试。
或者,您可以围绕您对方法工作原理的看法来构建测试,例如
- 如果我有一个数组,此方法 return 为真,它会做什么 return 如果我向最后一个元素添加一个元素{小于、等于、大于}结尾? (希望假,假,真)
- 如果我有一个数组,但此方法 return 为 false,它会做什么 return 如果我将元素 {小于、等于、大于} 最后一个元素添加到结尾? (希望在所有情况下都是错误的)