【发布时间】:2019-04-29 23:47:26
【问题描述】:
我有一系列黄瓜功能文件和当前项目中相关步骤定义测试的列表
在 step def 测试包中,我有这个 Hook 定义
@ContextConfiguration(classes = Application.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class Hooks {
....
}
和 RunCukesTest
@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources/features", glue = { "com.myapp.test.jersey.rest.v1" })
@ContextConfiguration(classes = Application.class)
public class RunCukesTest {
....
}
上面的类路径是正确的。 并且有一个step def test
package com.myapp.test.jersey.rest.v1;
....
@ContextConfiguration(classes = Application.class)
public class OrderCreateServiceTest {
....
@Autowired
private OrderRepository repository;
}
但是我得到了 Spring Boot 的跟随错误
Exception in thread "main" java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'entityManagerFactory': Requested bean is currently in creation: Is there an unresolvable circular reference?
那么如果我从 step def 类中取出@ContextConfiguration,像这样
//@ContextConfiguration(classes = Application.class)
public class CashpointCreateServiceTest {
显然,存储库对象的自动装配将通过抛出 NullPointerException 失败
如果有人能分享,不胜感激
(1) 使用Hook 和CukeTest 配置,如何在step def 类中自动装配bean?
(2) @ContextConfiguration 和Hook 和CukeTest 类都可以吗?
【问题讨论】:
标签: spring spring-boot