当前位置:编程学习 > JAVA >>

JUnit3测试比较两个Integer数组,数组内容是一摸一样的,但总是报错

如题,代码如下:
public final class Demo {

private Demo(){}

    // 功能:输入整型数组,对其元素按照升序或降序进行排序
    // 输入:pIntegerArray 需要排序的整型数组
    //       sortFlg 0:升序 1:降序
    // 返回:没有重复数字的整型

private final static int DESC = 1;
private final static int ASC = 0;
    public static void sortArray(Integer[] arr, int sortFlg)
    {
        for (int i = 0; i < arr.length; i++)
        {
         for (int j = i + 1; j < arr.length; j++)
         {
         if (ASC == sortFlg && arr[i] > arr[j])
         {
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
         }
         if (DESC == sortFlg && arr[i] < arr[j])
         {
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
         }
         }
        }
        System.out.println(Arrays.toString(arr));
    }
    public static void main(String[] args) {
sortArray(new Integer[]{0, 9, 7, 7, 6, 1, 7, 0}, 0);
}

}

测试类如下:
public class DemoTest  extends TestCase
{
    
   public void testCase1()
    {
        Integer[] pIntArray = {5, 4, 7, 1, 3};
        
        Demo.sortArray(pIntArray, 0);
        
        Integer[] resultArray = {1, 3, 4, 5, 7};
        
        assertEquals(resultArray, pIntArray);
    }
    
    public void testCase2()
    {
        Integer[] pIntArray = {1, 3, 7, 4, 5};
        
        Demo.sortArray(pIntArray, 1);
        
        Integer[] resultArray = {7, 5, 4, 3, 1};
        
        assertEquals(resultArray, pIntArray);
    }
    
}
JUnit 异常 --------------------编程问答-------------------- 是不是因为对象的原因 --------------------编程问答-------------------- 非基本数据类型, --------------------编程问答-------------------- 源码:
static public void assertEquals(Object expected, Object actual) {
    assertEquals(null, expected, actual);
}

static public void assertEquals(String message, Object expected, Object actual) {
if (expected == null && actual == null)
return;
if (expected != null && expected.equals(actual))
return;
failNotEquals(message, expected, actual);
}

expected.equals(actual)--->
public boolean equals(Object obj) {
        return (this == obj);
    }


肯定不一样


--------------------编程问答--------------------
引用 3 楼 u010361830 的回复:
源码:
static public void assertEquals(Object expected, Object actual) {
    assertEquals(null, expected, actual);
}

static public void assertEquals(String message, Object expected, Object actual) {
if (expected == null && actual == null)
return;
if (expected != null && expected.equals(actual))
return;
failNotEquals(message, expected, actual);
}

expected.equals(actual)--->
public boolean equals(Object obj) {
        return (this == obj);
    }


肯定不一样
那我要怎么样测试呢?自己重写这个方法可以吗? --------------------编程问答-------------------- assertEquals比较Integer[]中的每一个元素,而不是数组对象 --------------------编程问答--------------------
引用 4 楼 fuzeqiang 的回复:
Quote: 引用 3 楼 u010361830 的回复:

源码:
static public void assertEquals(Object expected, Object actual) {
    assertEquals(null, expected, actual);
}

static public void assertEquals(String message, Object expected, Object actual) {
if (expected == null && actual == null)
return;
if (expected != null && expected.equals(actual))
return;
failNotEquals(message, expected, actual);
}

expected.equals(actual)--->
public boolean equals(Object obj) {
        return (this == obj);
    }


肯定不一样
那我要怎么样测试呢?自己重写这个方法可以吗?


直接看输出结果最简单。 --------------------编程问答-------------------- --------------------编程问答-------------------- 楼上的,楼主都没有说报什么错呢,都这么积极呀。报错内容贴贴.
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,