我正在尝试为Spring Roo项目编写JUnit测试.如果我的测试需要使用实体类,我会得到以下异常:
java.lang.IllegalStateException: Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)
Spring Aspects JAR看起来配置正确.特别是,我在pom.xml
文件中有以下内容:
org.springframework spring-aspects ${spring.version}
和
true org.springframework spring-aspects 1.6
当没有从JUnit测试调用时,使用实体类的类工作正常.知道如何设置,以便从JUnit测试中注入实体管理器吗?
这是我的Test类(或多或少):
public class ServiceExampleTest { @Test public void testFoo() { FooService fs = new FooServiceImpl(); Setfoos = fs.getFoos(); } }
这足以抛出异常.FooServiceImpl类返回一个Foo,其中Foo是一个实体类.该getFoos()
应用程序时,通常的方式运行方法的工作.问题只出在单元测试的背景下.
ponzao是对的.通过让我的测试类扩展AbstractJunit4SpringContextTests,我能够拥有所有弹簧注入魔法.
例如
@ContextConfiguration(locations = { "/META-INF/spring/applicationContext.xml" }) public class SelfRegistrationTest extends AbstractJUnit4SpringContextTests {