代码之家  ›  专栏  ›  技术社区  ›  ses

Vertx。从测试中可以访问加载了verticle本身的spring Bean

  •  0
  • ses  · 技术社区  · 7 年前

    我想在部署时用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 我装的是弹簧豆,它本身就装了竖轴。

    这样地:

                sharedContext = new AnnotationConfigApplicationContext();
                sharedContext.register(VertxConfig.class);
                ...
                sharedContext.scan(componentScanPackages);
                sharedContext.refresh();
    

    在测试中, 我想控制spring上下文,以便能够访问已加载的bean。

    在集成测试中: 当我展开垂直时:

     @RunWith(VertxUnitRunner.class) 
     ....
    
     vertx.deployVerticle(
                        MyServiceVerticle.class.getName(),
                        deploymentOptions,
                        testContext.asyncAssertSuccess( id -> {
                            ...
                        })
                    );
    

    问题是。。我想我就是这样:

    通过部署垂直体并初始化spring的测试,我可以访问/引用加载的spring bean ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   ses    7 年前

    哦我想我可以在3.5版本的vert中做到这一点。x(我使用3.4.2)-

    http://vertx.io/docs/apidocs/io/vertx/core/Vertx.html#deployVerticle-io.vertx.core.Verticle-io.vertx.core.DeploymentOptions-

    部署时有一种合适的方法。