Für Unit-Tests ich gutes und schlechtes Szenario testen willMockito Unit-Test: Fabrik erstellen newInstance
Ich bin ein bisschen auf der Factory.createFoo() -Methode stecken zu bleiben. Wie kann ich die richtige Unit-Tests für diese (mit Mockito)
public class Bar extends Foo {
public Bar() {}
public Bar(Scenario scenario){
...DoStuff..
}
}
public static <T extends Foo> T createFoo(Class<T> fooClass) throws RuntimeException {
try {
return fooClass.newInstance();
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
throw new RuntimeException("Could not create the Foo: " + fooClass.getSimpleName(), e);
}
}
public static <T extends Foo> T createFoo(Scenario scenario, Class<T> fooClass) throws RuntimeException {
try {
return fooClass.getDeclaredConstructor(Scenario.class).newInstance(scenario);
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
throw new RuntimeException("Could not create the needed Foo: " + fooClass.getSimpleName(), e);
}
}
Ich möchte in der Lage sein, schreiben die folgenden Teile zu verspotten:
fooClass.newInstance();
fooClass.getDeclaredConstructor(Scenario.class).newInstance(scenario);
ich einige Fabrik Beispiele gefunden habe, aber alle ohne das generische
machen diese Beispiele für mich ungültig.
Wie geht man vor, um diese Art von Fabrikmethoden zu testen? Wenn es einen Designfehler gibt, der dies nicht testbar macht, zögere nicht, mir diese Fehler zu zeigen ;-)
Persönlich würde ich diese Methoden nicht verspotten, weil das grundlegende Java.lang ist. Ich denke, es ist völlig in Ordnung, zu testen, ob die Factory-Methode zum Beispiel eine Instanz eines Objekts zurückgibt, das gleich dem neuen T() ist. –
Wie komme ich dann in den Fangen? im Moment läuft es immer. –
Ja Entschuldigung, ich habe gerade bemerkt, dass ich das vermisst habe. Lass mich sehen, ob ich etwas zum Laufen bringen kann. –