Есть класс Java, для которого я пытаюсь написать тест JUnit.
Использование JaCoCo для мониторинга покрытия кода. Следовательно, нужно также вызывать приватные методы из тестового класса.
Для вызова основного метода и закрытых методов из тестового класса с использованием отражения Java.
Мой вопрос заключается в том, чтобы расширить основной класс (Пример) в тестовом классе или использовать отражение Java для доступа к закрытым методам? В настоящее время я использую отражение, как показано ниже.
Является ли хорошей практикой расширение класса Java в тестовом классе?
Я новичок в написании тестового класса, следовательно, вопрос. Буду признателен за вашу помощь в этом.
public class Example {
public static void main(String[] s) {
method1();
method2();
..........
}
private Employee method1(String str) {
.........
}
private Employee method2(String str1) {
.........
}
}
public class ExampleTest {
@InjectMocks
Example example;
.....
@Before
public void setUp() {
........
}
@Test
public void testMain() {
try {
String[] addresses = new String[]{};
Example loadSpy = spy(example);
loadSpy.main(addresses);
assertTrue(Boolean.TRUE);
} catch (.. e) {
.......
}
assertTrue(true);
}
@Test
public void testMethod1() {
try {
Method method = example.getClass().getDeclaredMethod("method1", String.class);
method.setAccessible(true);
method.invoke(example, "1111");
} catch (Exception e) {
.....
}
assertTrue(true);
}
@Test
public void testMethod1() {
try {
Method method = example.getClass().getDeclaredMethod("method2", String.class);
method.setAccessible(true);
method.invoke(example, "1111");
} catch (Exception e) {
.....
}
assertTrue(true);
}
}