Das Problem, das ich habe, ist, dass ich den Servlet-Kontext wie im folgenden Code autuwired, indem Sie es im Konstruktor übergeben. Leider kann es beim Ausführen eines Tests nichts autowire, da es keine ServlextContext
und Spring fehlschlägt.Kann Java ServlextContext in Tests für Tomcat-Projekt nicht verbinden
@Autowired
public MyClass(ServletContext context) {
this.servletContext = context;
}
Ich brauche nicht wirklich die ServletContext
für Tests autowired, nur wenn der Tomcat Krieg geführt wird, wo ich dann Methoden rufen die ServletContext
Ich bin ein Tomcat Server das Projekt ausgeführt wird, verwendet Frühling .
Sie sollten keinen App-Server benötigen, um einen Komponententest auszuführen. Sie müssen genauer darüber nachdenken, wie Sie diese App richtig testen können. – duffymo
Ja, ich brauche den Server nicht, um die Tests auszuführen. Einige Tests und der Server teilen jedoch dieselben Spring-Konfigurationsdateien und eine der Dateien erfordert einen Servlet-Kontext. –
Spring sollte nicht Teil Ihrer Tests sein. Dafür sind Mocks da. Erstellen Sie sie in Ihrem JUnit-Test und injizieren Sie sie manuell. Dadurch werden Ihre Komponententests auf die Klasse ausgerichtet, die Sie testen möchten. Sie werden auch schneller laufen. – duffymo