Использование assertArrayEquals в модульных тестах - PullRequest
36 голосов
/ 11 августа 2010

Я собираюсь использовать assertArrayEquals(int[], int[]) метод JUnit, описанный в API , для проверки одного метода в моем классе.

Но Eclipse показывает мне сообщение об ошибке, что он не может распознать такой метод.Эти два импорта на месте:

import java.util.Arrays;
import junit.framework.TestCase;

Я что-то пропустил?

Ответы [ 4 ]

54 голосов
/ 11 августа 2010

Это должно работать с JUnit 4:

import static org.junit.Assert.*;
import org.junit.Test;

public class JUnitTest {

    /** Have JUnit run this test() method. */
    @Test
    public void test() throws Exception {

        assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});

    }
}

(ответ основан на этой статье вики )


И то же самое длястарая структура JUnit (JUnit 3):

import junit.framework.TestCase;

public class JUnitTest extends TestCase {
  public void test() {
    assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
  }
}

Обратите внимание на разницу: аннотации отсутствуют, а тестовый класс является подклассом TestCase (который реализует статические методы assert).

30 голосов
/ 16 февраля 2012

Это может быть полезно, если вы хотите использовать только assertEquals без зависимости от вашей версии Junit

assertTrue(Arrays.equals(expected, actual));
5 голосов
/ 11 августа 2010

Попробуйте добавить:

import static org.junit.Assert.*;

assertArrayEquals - статический метод.

0 голосов
/ 11 августа 2010

Если вы пишете тесты в стиле JUnit 3.x, расширяющие TestCase , вам не нужно использовать квалификатор Assert - TestCase расширяет сам Assert, поэтому эти методы доступны без квалификатора .

Если вы используете аннотации JUnit 4, избегая базового класса TestCase, то необходим квалификатор Assert, а также импорт org.junit.Assert. Вы можете использовать статический импорт, чтобы избежать квалификатора в этих случаях, но некоторые считают его плохим .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...