【发布时间】:2021-09-16 15:08:07
【问题描述】:
我做了一个排序方法,用于对数组进行升序排序:
public class Sorting {
public void sort(int[] array) {
if (Objects.isNull(array)) {
throw new UnsupportedOperationException();
} else {
Arrays.sort(array);
System.out.println(array);
}
}
}
我有一个 SortingTest 类:
public class SortingTest {
Sorting sorting = new Sorting();
@Test
public void testNullCase() {
int [] expected = null;
int [] actual = null;
assertArrayEquals(expected, actual);
}
}
我测试了testEmptyCase()、testSingleElementArrayCase()、public void testSortedArraysCase() 和testOtherCases()。
我测试我的程序以对数组进行排序,但是对于以下@test 方法失败。如何正确进行测试?我想了解我需要做什么来做测试中的预期。感谢您的帮助。
@Test
public void testNullCarelessSorting() {
JUnitCore junit = new JUnitCore();
Result result = junit.run(NullCarelessSortingTestExtension.class);
assertEquals(1, result.getFailureCount());
assertEquals(5, result.getRunCount());
Failure nullCaseFailure = null;
}
@Test
public void testLazySorting() {
JUnitCore junit = new JUnitCore();
Result result = junit.run(LazySortingTestExtension.class);
assertEquals(2, result.getFailureCount());
assertEquals(5, result.getRunCount());
Failure nullCaseFailure = null;
Failure otherCasesFailure = null;
}
@Test
public void testTrickySorting() {
JUnitCore junit = new JUnitCore();
Result result = junit.run(TrickySortingTestExtension.class);
assertEquals(4, result.getFailureCount());
assertEquals(5, result.getRunCount());
Failure emptyCaseFailure = null;
Failure singleCaseFailure = null;
Failure sortedCaseFailure = null;
Failure otherCasesFailure = null;
}
【问题讨论】:
-
为什么使用嵌套的
do-while循环?变量i在此循环内不会更改,因此所有用户输入都存储在同一索引n[i] = scanner.nextInt()中,直到用户输入0。
标签: java arrays sorting testing