Проблема тестирования 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
.