SpringBootTest 支持 运行 个不同的 SpringBoot 应用程序实例
SpringBootTest support for running diffent SpringBoot Application Instances
借助 SpringBoot,我可以轻松地 运行 将相同的应用程序作为具有不同配置的不同实例,例如:
@SpringBootApplication
@ComponentScan({"..."})
public class Application {
public static void main(String[] args) {
start(Application.class)
.properties("notification.sender.app.name=SomeApp", "notification.this.app.name =AnotherApp", "server.port=${first.port:9010}").run(args);
start(Application.class)
.properties("first.app.name=AnotherApp", "second.app.name =SomeApp", "server.port=${second.port:9020}").run(args);
}
private static SpringApplicationBuilder start(Class<?>... sources) {
return new SpringApplicationBuilder(sources).bannerMode(Mode.OFF);
}
}
太棒了,专门用于测试应用程序间通信的东西。
我现在正在尝试使用@SpringBootTest 实现与 运行 针对 运行ning 应用程序实例的单元测试相同的效果。
可能很简单,但我还没学会。
我在 Junit 测试中使用 @ContextConfiguration
和 SpringRunner.class
作为测试运行器实现此目的的方法:
@Before
public void startUp() {
someAppContext = new SpringApplicationBuilder(Application.class)
.properties("notification.app.name=SomeApp", "server.port=" + someAppPort).run();
anotherAppContext = new SpringApplicationBuilder(Application.class)
.properties("notification.app.name=AnotherApp", "server.port=" + anotherAppPort).run();
}
其中someAppPort
和anotherAppPort
配置为@Value
。
借助 SpringBoot,我可以轻松地 运行 将相同的应用程序作为具有不同配置的不同实例,例如:
@SpringBootApplication
@ComponentScan({"..."})
public class Application {
public static void main(String[] args) {
start(Application.class)
.properties("notification.sender.app.name=SomeApp", "notification.this.app.name =AnotherApp", "server.port=${first.port:9010}").run(args);
start(Application.class)
.properties("first.app.name=AnotherApp", "second.app.name =SomeApp", "server.port=${second.port:9020}").run(args);
}
private static SpringApplicationBuilder start(Class<?>... sources) {
return new SpringApplicationBuilder(sources).bannerMode(Mode.OFF);
}
}
太棒了,专门用于测试应用程序间通信的东西。
我现在正在尝试使用@SpringBootTest 实现与 运行 针对 运行ning 应用程序实例的单元测试相同的效果。
可能很简单,但我还没学会。
我在 Junit 测试中使用 @ContextConfiguration
和 SpringRunner.class
作为测试运行器实现此目的的方法:
@Before
public void startUp() {
someAppContext = new SpringApplicationBuilder(Application.class)
.properties("notification.app.name=SomeApp", "server.port=" + someAppPort).run();
anotherAppContext = new SpringApplicationBuilder(Application.class)
.properties("notification.app.name=AnotherApp", "server.port=" + anotherAppPort).run();
}
其中someAppPort
和anotherAppPort
配置为@Value
。