使用Spring Boot 1.4测试注释时无法注入AutoWired Enviroment

时间:2016-11-12 23:45:31

标签: java spring spring-boot cucumber cucumber-jvm

我正在使用Cucumber在Spring Boot应用程序上运行集成测试,在我的步骤定义中,我的代码使用以下代码引导Spring Boot应用程序:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Application.class, loader = SpringApplicationContextLoader.class)
@WebAppConfiguration
@IntegrationTest
@Slf4j
public class CreditCardStepdefs {

....

}

现在,我正在尝试重构我的代码以使用Spring Boot 1.4中的simplified annotations,同样的代码现在看起来像这样:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
@Slf4j
public class CreditCardStepdefs {

...

}

但是,我在这段特殊代码中拾取环境变量时遇到了一些问题:

@Autowired
private Environment env;

@Before("@RUN, @POST")
public void setUp() {
    this.host = env.getProperty("test.url") + env.getProperty("server.contextPath");
    this.results = new HashMap<>();
    this.paramKeyList = new ArrayList<>();
    this.retry = false;
    this.isPassed = true;
}

当我运行测试时,“env.getProperty()”总会抛出一个NPE。看来@AutoWired for Environment不再使用上面的注释了。为了将环境注入上下文,我需要做些什么?

0 个答案:

没有答案