2013-09-27 4 views
1

У меня есть следующий класс, который возвращает список строк.junit.framework.AssertionFailedError при выполнении assertEquals on String []

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 ([Документы здесь] (http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertArrayEquals%28java.lang.Object [],% 20java.lang.Object []% 29)) – jedwards

Смежные вопросы