单元测试powermock 测试mybatis-plus 链式调用

1 链式调用的模拟

 @Test
    public void test() {
        // 连续使用多个eq()的情况
        LambdaQueryChainWrapper<ResourceSubOrder> wrapper1 = PowerMockito.mock(LambdaQueryChainWrapper.class);
        LambdaQueryChainWrapper<ResourceSubOrder> wrapper2 = PowerMockito.mock(LambdaQueryChainWrapper.class);
        LambdaQueryChainWrapper<ResourceSubOrder> wrapper3 = PowerMockito.mock(LambdaQueryChainWrapper.class);
        LambdaQueryChainWrapper<ResourceSubOrder> wrapper4 = PowerMockito.mock(LambdaQueryChainWrapper.class);
        LambdaQueryChainWrapper<ResourceSubOrder> wrapper5 = PowerMockito.mock(LambdaQueryChainWrapper.class);

        List<ResourceSubOrder> list = PowerMockito.mock(ArrayList.class);
        PowerMockito.doReturn(wrapper1).when(resourceSubOrderRepository).lambdaQuery();
        // eq ()三个参数的情况 ,anyBoolean() 匹配布尔型
        PowerMockito.doReturn(wrapper2).when(wrapper1).eq(anyBoolean(), any(), any());
        PowerMockito.doReturn(wrapper3).when(wrapper2).eq(anyBoolean(), any(), any());
        PowerMockito.doReturn(wrapper4).when(wrapper3).eq(any(), any());
        PowerMockito.doReturn(wrapper5).when(wrapper4).eq(any(), any());
        PowerMockito.doReturn(list).when(wrapper5).list();

        ResponseResult<List<AccountInstanceVO>> xx = controller.getInstanceByProductAndRegion(new UserBO(), "00", "xx", "111");
        System.out.println(xx.getData());
        Assert.assertEquals(new ArrayList<>(), xx.getData());
    }
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐