Ich habe ein Komponenten-Setup, das im Wesentlichen ein Starter für eine Anwendung ist. Es ist wie folgt konfiguriert:
@Component
public class MyLauncher {
@Autowired
MyService myService;
//other methods
}
MyService ist mit der @Service
Spring-Annotation versehen und wird ohne Probleme automatisch in meine Launcher-Klasse übertragen.
Ich möchte einige jUnit-Testfälle für MyLauncher schreiben. Dazu habe ich eine Klasse wie diese gestartet:
public class MyLauncherTest
private MyLauncher myLauncher = new MyLauncher();
@Test
public void someTest() {
}
}
Kann ich ein Mock-Objekt für MyService erstellen und es in meiner Testklasse in myLauncher einfügen? Ich habe derzeit keinen Getter oder Setter in myLauncher, da Spring die automatische Verdrahtung übernimmt. Wenn möglich, möchte ich keine Getter und Setter hinzufügen müssen. Kann ich den Testfall anweisen, ein Scheinobjekt mithilfe einer @Before
init-Methode in die automatisch verdrahtete Variable einzufügen ?
Wenn ich das völlig falsch mache, kannst du das gerne sagen. Ich bin noch neu in diesem Bereich. Mein Hauptziel ist es, nur Java-Code oder Anmerkungen zu haben, die ein Scheinobjekt in diese @Autowired
Variable einfügen, ohne dass ich eine Setter-Methode schreiben oder eine applicationContext-test.xml
Datei verwenden muss. Ich würde viel lieber alles für die Testfälle in der .java
Datei pflegen, anstatt nur für meine Tests einen separaten Anwendungsinhalt pflegen zu müssen.
Ich hoffe, Mockito für die Scheinobjekte verwenden zu können. In der Vergangenheit habe ich dies getan, org.mockito.Mockito
indem ich meine Objekte mit verwendet und erstellt habe Mockito.mock(MyClass.class)
.