2013-09-27 27 views
1

做assertEquals我有以下類返回一個字符串列表。junit.framework.AssertionFailedError同時對字符串[]

public static String[] parseLinks(String text) { 
    String[] result = new String[] {"",""}; 
      return result; 
    } 

但是當我做一個的assertEquals的結果,

assertEquals(new String[]{"",""}, parseLinks("")); 

我得到以下錯誤:

Exception in thread "main" junit.framework.AssertionFailedError: expected: <[Ljava.lang.String;@2352544e> but was:<[Ljava.lang.String;@721cdeff> 
at junit.framework.Assert.fail(Assert.java:57) 
at junit.framework.Assert.failNotEquals(Assert.java:329) 
at junit.framework.Assert.assertEquals(Assert.java:78) 
at junit.framework.Assert.assertEquals(Assert.java:86) 
at junit.framework.TestCase.assertEquals(TestCase.java:253) 

如何去修復呢?請讓我知道是否還有其他任何我必須提供的信息。

+2

不要將列表與數組混淆,它們是兩個不同的東西。你正在返回一個*數組*的字符串,而不是一串字符串。我知道這種差異可能看起來很小,但從技術角度來講,這種差異很大。 – arshajii

回答

7

您正在比較兩個不同的Array對象。您可以使用assertArrayEquals來比較數組。

+3

+1([Docs here](http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertArrayEquals%28java.lang.Object [],%20java.lang.Object []%29) ) – jedwards