Java SpringBoot SpringApplicationBuilder
我需要通过创建Cucumber集成测试来测试我的Spring应用程序代码。我使用SpringApplicationBuilder在触发实际逻辑之前启动我的应用程序,并使用以下语法执行此操作:-Java SpringBoot SpringApplicationBuilder,java,spring,cucumber,spring-boot,Java,Spring,Cucumber,Spring Boot,我需要通过创建Cucumber集成测试来测试我的Spring应用程序代码。我使用SpringApplicationBuilder在触发实际逻辑之前启动我的应用程序,并使用以下语法执行此操作:- application = new SpringApplicationBuilder() .parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"}) .profiles("abc") .properties
application = new SpringApplicationBuilder()
.parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"})
.profiles("abc")
.properties("name:value") [It has 5/6 (name:value) pairs here]*
.showBanner(false)
.logStartupInfo(true)
.headless(true)
.application()
.run();
我的Spring应用程序启动正确。但是,它不会获取传递给SpringApplicationBuilder()的属性(名称、值)对的值。我尝试了以下方法来设置它们:-
我需要这些属性是Spring属性,以确保应用程序正常工作。也许我可以用别的方法用Spring道具测试我的代码?如果是,我该怎么做?您可以按如下方式配置属性:
application = new SpringApplicationBuilder()
.parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"})
.profiles("abc")
.properties("key1:test1", "key2:test2")
.showBanner(false)
.logStartupInfo(true)
.headless(true)
.application()
.run();
现在,使用@Value
注释检索属性:
@Value("${key1}")
String val;
val
变量将被分配值test1
我自己也处理过同样的问题。
我的问题是,我试图设置其值的键也在application.properties文件中设置
从文件中删除条目后,它就工作了 你是如何检索环境变量的?我实际上并没有检索环境变量。。我只需要使用特定于Spring的属性,我正在使用注释检索这些属性。因此,如果Spring属性设置正确,Cuke测试应该像Spring应用程序正常触发一样运行。非常感谢您的帮助,但是我在执行上述步骤时得到的值是“$key1”,而不是实际值。。任何想法…我能够使用上面的代码注入key1值。请共享您用
@Value
注释的类。另外,共享spring配置文件。