在我的代码中,我有两个静态方法。我用来比较两个int数组的内容,另一个是比较两个字符串数组的内容(以相同的顺序)。如何为其中一种方法构建JUnit测试?我在想我可以用 编辑** 我创建了一个无效的测试。
//edited test, passes but clearly isn't correct.
public class ArrayComparerTests {
@Test
public void testIntArray() {
// ArrayComparer arrayComparer = new ArrayComparer();
int[] list1 = {2,2,3};
int[] list2 = {1};
assertEquals(false, ArrayComparer.compareIntArrays(list1, list2));
}
}
public class ArrayComparer {
public static boolean compareIntArrays(int[] list1, int[] list2) {
// checks for same array reference
if (list1 == list2) {
return true;
}
// checks for null arrays
if (list1 == null || list2 == null) {
return false;
}
// arrays should be of equal length
if (list2.length != list1.length) {
return false;
}
// compare array values
for (int i = 0; i < list1.length; i++) {
for (i = 0; i < list2.length; i++) {
if (list1[i] != list2[i])
return false;
}
}
return true;
}
public static boolean compareStringArrays(String[] list3, String[] list4) {
// checks for same array reference
if (list3 == list4) {
return true;
}
// checks for null arrays
if (list3 == null || list4 == null) {
return false;
}
// arrays should be of equal length
if (list4.length != list3.length) {
return false;
}
// compare array values
for (int i = 0; i < list3.length; i++) {
for (i = 0; i < list4.length; i++) {
if (list3[i] != list4[i])
return false;
}
}
return true;
}
}
答案 0 :(得分:0)
您可以使用Assert.assertArrayEquals。
@Test
public void testIntArray() {
int[] list1 = {2,2,3};
int[] list2 = {1};
// assertion fail
Assert.assertArrayEquals(list2, list1);
// assertion pass
int list3 = {2,2,3};
Assert.assertArrayEquals(list1, list3);
}
答案 1 :(得分:0)
想出来。这就是答案。
public class ArrayComparerTests {
@Test
public void testIntArray() {
int[] list1 = {2,2,3};
int[] list2 = {1};
assertEquals(false, ArrayComparer.compareIntArrays(list1, list2));
}
}