Я собираюсь использовать assertArrayEquals (int [], int [])
метод JUnit, описанный в API для проверки одного метода в моем классе.
Но Eclipse показывает мне сообщение об ошибке, что он не может распознать такой метод. Эти два импорта на месте:
import java.util.Arrays;
import junit.framework.TestCase;
Я что-то пропустил?
Это должно работать с 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 (который реализует статические методы утверждения).
Если вы пишете тесты стиля JUnit 3.x, расширяющие TestCase , тогда вам не нужно использовать квалификатор Assert
- TestCase extends Утверждает себя, и поэтому эти методы доступны без квалификатора.
Если вы используете аннотации JUnit 4, избегая базового класса TestCase, тогда необходим квалификатор Assert
, а также импорт org.junit.Assert
. Вы можете использовать статический импорт, чтобы избежать использования квалификатора в этих случаях, но некоторые считают это плохим стилем .
Попробуйте добавить:
import static org.junit.Assert.*;
assertArrayEquals
- статический метод.