Istnieją dwa sposoby, aby to zrobić.
Standardowym sposobem jest zdefiniowanie klasy testowej w tym samym pakiecie klasy, która ma zostać przetestowana. Należy to łatwo zrobić, ponieważ współczesne IDE generuje przypadek testowy w tym samym pakiecie testowanej klasy domyślnie.
Niestandardowy, ale bardzo przydatny sposób polega na użyciu refleksji. Pozwala to na zdefiniowanie prywatnych metod jako prawdziwych "prywatnych" zamiast "pakietów prywatnych". Na przykład, jeśli masz zajęcia.
class MyClass {
private Boolean methodToBeTested(String argument) {
........
}
}
Możesz mieć swoje metody badawczej takiego:
class MyTestClass {
@Test
public void testMethod() {
Method method = MyClass.class.getDeclaredMethod("methodToBeTested", String.class);
method.setAccessible(true);
Boolean result = (Boolean)method.invoke(new MyClass(), "test parameter");
Assert.assertTrue(result);
}
}
są prywatne lub zapakować prywatne? Jeśli są one pakietami prywatnymi, możesz je przetestować jak każdą inną klasę, pod warunkiem, że twoje testy są w tym samym pakiecie (co powinny ...) – assylias