gpt4 book ai didi

java - 如何在 Spring Roo 中使用 JUnit 测试? (EntityManager 的问题)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:53 25 4
gpt4 key购买 nike

我正在尝试为 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 文件中有以下内容:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>

<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>

并且使用实体类的类在未从 JUnit 测试调用时工作正常。知道如何设置以便从 JUnit 测试注入(inject)实体管理器吗?

这是我的测试类(或多或少):

public class ServiceExampleTest {

@Test
public void testFoo() {
FooService fs = new FooServiceImpl();
Set<Foo> foos = fs.getFoos();
}
}

这足以抛出异常。 FooServiceImpl 类返回一个 Foo 的 Set,其中 Foo 是一个实体类。 getFoos() 方法在应用程序以通常方式运行时起作用。问题仅出现在单元测试的上下文中。

最佳答案

ponzao 是正确的。通过让我的测试类扩展 AbstractJunit4SpringContextTests,我能够拥有所有的 Spring 注入(inject)魔法。

例如

@ContextConfiguration(locations = { "/META-INF/spring/applicationContext.xml" })
public class SelfRegistrationTest extends AbstractJUnit4SpringContextTests {

关于java - 如何在 Spring Roo 中使用 JUnit 测试? (EntityManager 的问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com