我想在部署时使用spring上下文初始化一个Verticle实例(所有都是基于@Configurations的注释等),然后能够在集成测试中测试它,
我的垂直:
public class MyServiceVerticle extends AbstractVerticle {
final VerticleStringContextLoader verticleStringContextLoader = new VerticleStringContextLoader(
"com.my.config",
MyConfig.class
);
@Override
public void start(Future<Void> startFuture) {
verticleStringContextLoader.connectWithVertx(vertx);
verticleStringContextLoader.onStart(startFuture);
}
@Override
public void stop() {
verticleStringContextLoader.onStop();
}
}
在VerticleStringContextLoader
我加载了带有verticle本身的spring bean。
像这样:
sharedContext = new AnnotationConfigApplicationContext();
sharedContext.register(VertxConfig.class);
...
sharedContext.scan(componentScanPackages);
sharedContext.refresh();
在测试中, 我想控制spring上下文,以便我能够访问那些已加载的bean。
在集成测试中: 当我部署我的Verticle:
@RunWith(VertxUnitRunner.class)
....
vertx.deployVerticle(
MyServiceVerticle.class.getName(),
deploymentOptions,
testContext.asyncAssertSuccess( id -> {
...
})
);
问题是......我想我只是那样的捷径:
如何从部署Verticle并初始化弹簧的测试开始我可以访问/引用Loaded Spring beans ?
答案 0 :(得分:0)
哦..我想我可以在3.5版本的vert.x(我使用3.4.2) -
中做到这一点部署时有适当的方法。