美文网首页
4.消费端mock

4.消费端mock

作者: 山海树 | 来源:发表于2020-09-06 10:49 被阅读0次

    当消费端用于测试自己逻辑的时候,可以通过mock的方法来实现不需要服务端的测试。
    1.实现方式也就是在消费端新建一个与实现类,该实现类实现需要调用的接口,并且
    实现类=接口完全地址+Mock(如果不一致,则找不到这个mock,会报错)
    2.在消费端配置不检查服务端是否存在,check= false
    3.设置消费端进入mock模式, mock = true
    4.直接调用即可

    注意,此处存在一个 逻辑,当调用的时候,还是回去找服务端,尝试连接不上的时候才会去调用mock实现类。

     ReferenceConfig<GreetingService> referenceConfig = new ReferenceConfig<>();
            referenceConfig.setApplication(new ApplicationConfig("mock-consumer"));
            referenceConfig.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181"));
            referenceConfig.setTimeout(5000);
            referenceConfig.setInterface(GreetingService.class);
            referenceConfig.setVersion("1.0.0");
            referenceConfig.setGroup("dubbo");
    
            referenceConfig.setCheck(false);
            referenceConfig.setMock(true);
    
            GreetingService greetingService = referenceConfig.get();
    
            RpcContext.getContext().setAttachment("company","alibaba");
    
            System.out.println(greetingService.sayHello("world"));
    

    原理


    image.png

    消费端调用get()后再init()方法中会checkMock(),checkMock()回对mock配置做校验和转换
    mock的真正实现则是再MockClusterInvoker中实现


    image.png

    相关文章

      网友评论

          本文标题:4.消费端mock

          本文链接:https://www.haomeiwen.com/subject/fimosktx.html