Ich habe eine relativ kleine Java-Bibliothek, die ein paar Dutzend Beans implementiert (keine Datenbank oder GUI). Ich habe eine Spring Bean-Konfigurationsdatei erstellt, die von anderen Java-Projekten verwendet wird, um meine Beans in ihr Material zu integrieren.
Ich versuche jetzt zum ersten Mal, Spring Test zu verwenden, um einige dieser Beans in meine Junit-Testklassen zu injizieren (anstatt sie einfach zu instanziieren).
Ich tue dies zum Teil, um Spring Test zu lernen und zum Teil, um die Tests zu zwingen, die gleiche Bean-Konfigurationsdatei zu verwenden, die ich für andere bereitstelle.
In der Spring-Dokumentation heißt es, dass ich einen Anwendungskontext mithilfe der Klasse "TestContext" erstellen muss, die mit Spring geliefert wird. Ich glaube, dies sollte in einer Spring-XML-Datei erfolgen, auf die ich über die @ContextConfiguration-Annotation in meiner Testklasse verweise.
@ContextConfiguration({"/test-applicationContext.xml"})
Es gibt jedoch keinen Hinweis darauf, was in die Datei geschrieben werden soll!
Wenn ich meine Tests in Eclipse ausführe, erscheint die Fehlermeldung "failed to load Application Context" .....
Aktualisierung:
Hier ist test-applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>Holds application context for testing of the domain module.</description>
<!-- Imports the uuid generator bean definitions -->
<import resource="resources/domain-uuid.xml"/>
</beans>
Mein Projektverzeichnis sieht folgendermaßen aus:
domain/
src/
main/
java/
resources/
test/
java/
resources/ (location of test-applicationContext.xml)
Nur zum Spaß habe ich auch versucht, von der mvn-Befehlszeile über "mvn clean test" zu bauen, und ich erhielt die folgenden Fehler, die mein echtes Problem sein kann:
package org.springframework.test.context does not exist
package org.springframework.test.context.junit4 does not exist
cannot find symbol
symbol: class ContextConfiguration
@ContextConfiguration({"/resources/test-applicationContext.xml"})
cannot find symbol
symbol: class SpringJUnit4ClassRunner
@RunWith(SpringJUnit4ClassRunner.class)