Junit 方法测试dubbo接口

Junit 方法测试dubbo接口


公司采用dubbo开源框架作为底层的rpc通信技术组件,在实际的工作中,需要测试外部团队的dubbo接口是否工作正常,测试的主要目的确认两个问题:
1、接口有无明显的代码 bug
2、基础的通信网络是否正常工作(即能否ping是否正常)
实际项目中有很多依赖dubbo 接口是外部提供的,使用 @SpringBootTest 单元测试会导致项目再启动的过程中注入各种依赖,且启动时间比较长。因此使用junit 单独测试dubbo接口,可以加快工作效率,代码如下,mark一下:

//dubbo 接口定义
import java.util.List;

public interface InterfaceAPI {

    List getDataList(Long userId, Long orderId);
}
 
  
//dubbo 接口实现
import com.alibaba.dubbo.config.annotation.Service;

import java.util.Arrays;
import java.util.List;

@Service(version = "1.0.0")
public class InterfaceAPIProvider implements InterfaceAPI {
    @Override
    public List getDataList(Long userId, Long orderId){
        /***
         业务 处理
         ***/
        return Arrays.asList();
    }
}
 
  
/**
 * 使用 main 方法 测试
 */

public class JunitTestDubbo {

    @Test
    public void test() {
        // 当前应用配置
        ApplicationConfig application = new ApplicationConfig();
        application.setName("test-consumer");
        application.setOwner("owner");

        // 连接注册中心配置 
        RegistryConfig registry1 = new RegistryConfig();
        registry1.setAddress("zookeeper://xxx1:2181");
        RegistryConfig registry2= new RegistryConfig();
        registry2.setAddress("zookeeper://xxx2:2181");
        RegistryConfig registry3 = new RegistryConfig();
        registry3.setAddress("zookeeper://xxx3:2181");

        //InterfaceAPI 为dubbo接口定义
        ReferenceConfig reference = new ReferenceConfig();
        reference.setApplication(application);
        reference.setRegistries(Arrays.asList(registry1,registry2,registry3));
        reference.setInterface(InterfaceAPI.class);
        //接口定义的版本号
        reference.setVersion("1.0.0");

        InterfaceAPI interfaceAPI = reference.get();
        List result = interfaceAPI.getDataList(1192161l,4670l);
        System.out.println("===== result " + JSON.toJSONString(result));

    }
}

你可能感兴趣的:(java,基础,java)