Проблема тестирования Java Junit

Я использую Junit 4. Вся моя программа работает нормально. Я пытаюсь написать тестовый пример. Но есть одна ошибка...

вот очень простой образец теста

public class di  extends TestCase{
    private static Records testRec;
    public void testAbc() {
        Assert.assertTrue(
            "There should be some thing.",
            di.testRec.getEmployee() > 0);
    }

}

и когда я запускаю это, это дает мне ошибку, что

fName can not be null

Если я использую super и делаю так

public TestA() {
super("testAbc");
}

все работает нормально. Это было не так раньше с JUnit 3.Икс я поступаю неправильно или они изменили это? :( Извините, если я не ясно

есть ли способ executre тест без супер? или вызывая функции etc. ?

2 ответов


в JUnit 4 Вам не нужно расширять TestCase, вместо @Test аннотации, чтобы отметить ваши методы испытаний:

public class MyTest {
    private static Records testRec;
    @Test
    public void testAbc() {
        Assert.assertTrue(
            "There should be some thing.",
            MyTest.testRec.getEmployee() > 0);
    }
}

в качестве примечания, тестирование static член вашего класса может сделать ваши модульные тесты зависимыми друг от друга, что не очень хорошо. Если у вас нет очень веской причины для этого, я бы рекомендовал удалить static квалификатор.


это не ваш случай, но эта ошибка также может означать, что у вас есть файл с именем Test.java в вашем проекте. Переименование исправит ошибку, но после рефакторинга @Test будет заменен на @NewName (по крайней мере, в Eclipse), поэтому не забудьте вручную изменить его на @Test.