Wie verwende ich JUnit-Tests mit Spring Roo? (Probleme mit EntityManager)
Ich versuche, einen JUnit-Test für ein Spring Roo-Projekt zu schreiben. Wenn für meinen Test die Verwendung der Entitätsklassen erforderlich ist, erhalte ich die folgende Ausnahme:
java.lang.IllegalStateException: Entity manager has not been injected
(is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)
Die JAR-Datei "Spring Aspects" scheint korrekt konfiguriert zu sein. Insbesondere habe ich folgendes impom.xml
Datei
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
un
<plugin>
<configuration>
<outxml>true</outxml>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
und die Klassen, die die Entitätsklassen verwenden, funktionieren einwandfrei, wenn sie nicht von einem JUnit-Test aufgerufen werden. Irgendeine Idee, wie ich die Dinge so einrichten kann, dass der Entity-Manager aus einem JUnit-Test injiziert wird?
Hier ist meine Testklasse (mehr oder weniger):
public class ServiceExampleTest {
@Test
public void testFoo() {
FooService fs = new FooServiceImpl();
Set<Foo> foos = fs.getFoos();
}
}
Dies ist genug, um die Ausnahme auszulösen. Die FooServiceImpl-Klasse gibt eine Menge von Foo zurück, wobei Foo eine Entitätsklasse ist. DasgetFoos()
-Methode funktioniert, wenn die Anwendung auf die übliche Weise ausgeführt wird. Das Problem tritt nur im Zusammenhang mit Unit-Tests auf.