Wywoływanie prywatnej metody za pomocą JMockit do wyniku testu
Używam JMockit 1.1 i wszystko, co chcę zrobić, to wywołać prywatną metodę i przetestować wartość zwracaną. Mam jednak problem ze zrozumieniem, jak to zrobić z poziomuJMockit De-Encapsulation przykład.
Metoda, którą próbuję przetestować, jest metodą prywatną w tej klasie:
public class StringToTransaction {
private List<String> parseTransactionString(final String input) {
// .. processing
return resultList;
}
}
A mój kod testowy jest poniżej.
@Test
public void testParsingForCommas() {
final StringToTransaction tested = new StringToTransaction();
final List<String> expected = new ArrayList<String>();
// Add expected strings list here..
new Expectations() {
{
invoke(tested, "parseTransactionString", "blah blah");
returns(expected);
}
};
}
A błąd, który otrzymuję to:
java.lang.IllegalStateException: brak wywołania do wyśmiewanego typu w tym momencie; upewnij się, że takie wywołania pojawiają się dopiero po deklaracji odpowiedniego pola próbnego lub parametru
Być może źle zrozumiałem tutaj cały interfejs API, ponieważ nie sądzę, żebym chciał drwić z klasy. Po prostu przetestuj wynik wywołania metody prywatnej.