Używam Java 6, JUnit 4.8.1 i piszę aplikację konsolową. Moja aplikacja ma pole członka, który nie jest narażona ...Java: Jak wyśmiać metodę pola, gdy to pole nie jest odsłonięte?
public class MyApp {
...
private OpportunitiesService m_oppsSvc;
private void initServices() {
…
m_oppsSvc = new OpportunitiesServiceImpl(…);
}
...
}
chcę drwić zachowanie tak, że gdy jeden z moich usług metoda nazywa się (np m_oppsSvc.getResults()
), ten sam wynik jest zawsze zwrócony. Jak mogę to zrobić? Nie ma metody ustawiającej dla tego pola. Obecnie pracuję z Mockito 1.8.4. Czy można to zrobić z Mockito lub z inną symulowaną strukturą?
Nie możesz stworzyć metody setera? – jrad
Możliwy duplikat [Jak testujesz metody prywatne] (http://programmers.stackexchange.com/questions/100959/how-do-you-unit-test-private-methods)? –
Co próbujesz przetestować? to jest 'getResults()' public? Czy ma z nim powiązane pole prywatne, czy jest obliczane w czasie wykonywania? W zależności od odpowiedzi, możesz użyć "szpiega" lub szyderstwa może nie mieć z tym nic wspólnego i możesz użyć czegoś takiego jak 'org.springframework.test.util.ReflectionTestUtils', aby po prostu ustawić prywatne pole na wartość, którą chcesz. – jhericks