Java 如何创建JUnit测试来测试CompareTo?
在我的代码中,我有两个静态方法。一个用于比较两个int数组的内容,另一个用于比较两个字符串数组的内容(顺序相同)。如何为这些方法之一构建JUnit测试?我想我可以用 编辑** 我创建了一个测试,但它并不准确Java 如何创建JUnit测试来测试CompareTo?,java,arrays,junit,int,compare,Java,Arrays,Junit,Int,Compare,在我的代码中,我有两个静态方法。一个用于比较两个int数组的内容,另一个用于比较两个字符串数组的内容(顺序相同)。如何为这些方法之一构建JUnit测试?我想我可以用 编辑** 我创建了一个测试,但它并不准确 //edited test, passes but clearly isn't correct. public class ArrayComparerTests { @Test public void testIntArray() { //
//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;
}
}
//已编辑测试,通过,但明显不正确。
公共类数组比较{
@试验
公共无效测试阵列(){
//ArrayComparer ArrayComparer=新的ArrayComparer();
int[]list1={2,2,3};
int[]list2={1};
assertEquals(false,ArrayComparer.CompareInArrays(列表1,列表2));
}
}
公共类阵列比较程序{
公共静态布尔比较数组(int[]list1,int[]list2){
//检查相同的数组引用
if(list1==list2){
返回true;
}
//检查空数组
if(list1==null | | list2==null){
返回false;
}
//数组的长度应该相等
if(list2.length!=list1.length){
返回false;
}
//比较数组值
for(int i=0;i
您可能可以使用
我明白了。这就是答案
public class ArrayComparerTests {
@Test
public void testIntArray() {
int[] list1 = {2,2,3};
int[] list2 = {1};
assertEquals(false, ArrayComparer.compareIntArrays(list1, list2));
}
}
您是否可以创建一个函数,将数组中的每个元素相互比较,假设它们的大小相同,如果有不一样的地方就中断,让函数返回false,并在单元测试时执行assert true(或false,具体取决于您期望的结果)?
public class ArrayComparerTests {
@Test
public void testIntArray() {
int[] list1 = {2,2,3};
int[] list2 = {1};
assertEquals(false, ArrayComparer.compareIntArrays(list1, list2));
}
}