gpt4 book ai didi

java - 如何使用 JUnit 在 Spring 中测试单个服务?

转载 作者:行者123 更新时间:2023-12-01 06:14:44 25 4
gpt4 key购买 nike

我有一个 @Service 类,它注入(inject)了一些属性。现在注入(inject)过程工作正常,我想编写一个 junit 测试。

如何定义 JUnit 测试而无需加载完整的应用程序上下文配置?

@Service
public class MyService {
@Value("${test.property}")
private String value;

public String getValue() { return value; }
}

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {
@Autowired
private MyService service;

@Test
public void test() {
assertNotNull(service.getValue());
}
}

但是当我运行这个时:

java.lang.IllegalStateException: Neither GenericXmlContextLoader nor AnnotationConfigContextLoader was able to detect defaults, and no ApplicationContextInitializers were declared for context configuration 
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.processContextConfiguration(AbstractDelegatingSmartContextLoader.java:208)
at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:348)
at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:305)

最佳答案

您没有指定从何处注入(inject)您在测试中使用 @Autowired 注释的字段的 beans 文件。你应该有这样的东西:

@ContextConfiguration(locations = {
"classpath:applicationContext.xml",
"classpath:junit-applicationContext.xml"
})

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

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