2016-04-26 7 views
1

Ich versuche, eine Unit-Tests auf eine Klasse zu schreiben, die dynamisch Java-Klassen mit Daten aus XLS-Datei erstellt. Alle Schreibmethoden, die ich verwendet habe, sind privat. Ich habe eine öffentliche Methode in derselben Klasse, die alle diese privaten Schreibmethoden aufruft. Kann mir jemand sagen, wie man Komponententests für dieses Szenario schreibt?Unit Tests Datei IO Java

+0

http://stackoverflow.com/help/mcve – theblindprophet

+0

Entweder können Sie das Methodenpaket lokal erstellen oder Sie können sie testen, indem Sie die öffentlichen Methoden aufrufen. –

Antwort

0

Sie können dies auf zwei Arten tun:

Durch Reflexion, wie here gezeigt:

Method method = targetClass.getDeclaredMethod(methodName, argClasses); 
method.setAccessible(true); 
return method.invoke(targetObject, argObjects); 

Oder man kann PowerMock verwenden, wenn Sie private Methoden verspotten wollen.

1

Private Methoden sollten intern in der class verwendet werden, und daher müssen Sie sie nicht testen, weil durch das Testen der öffentlichen, testen Sie indirekt die privaten. Wenn sie nicht verwendet werden, löschen Sie sie, damit Sie sie nicht haben.

+0

Danke, ich habe einen neuen Thread erstellt, um dieses Szenario genauer zu erklären ... Wirklich zu schätzen Ihre Zeit ... http://stackoverflow.com/questions/36874254/test-if-the-returned-string- hat-Java-Klasse – Rookie