@Override
    public List<ProductCategoryDO> getCategoryList(ProductCategoryListReqVO listReqVO) {
        return productCategoryMapper.selectList(listReqVO);
    }
@Test
    public void testGetCategoryList() {
        // mock 数据
        ProductCategoryDO dbCategory = randomPojo(ProductCategoryDO.class, o -> { // 等会查询到
            o.setName("奥特曼");
            o.setStatus(CommonStatusEnum.ENABLE.getStatus());
            o.setParentId(PARENT_ID_NULL);
        });
        productCategoryMapper.insert(dbCategory);
        // 测试 name 不匹配
        productCategoryMapper.insert(cloneIgnoreId(dbCategory, o -> o.setName("奥特块")));
        // 测试 status 不匹配
        productCategoryMapper.insert(cloneIgnoreId(dbCategory, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
        // 测试 parentId 不匹配
        productCategoryMapper.insert(cloneIgnoreId(dbCategory, o -> o.setParentId(3333L)));
        // 准备参数
        ProductCategoryListReqVO reqVO = new ProductCategoryListReqVO();
        reqVO.setName("特曼");
        reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
        reqVO.setParentId(PARENT_ID_NULL);

        // 调用
        List<ProductCategoryDO> list = productCategoryService.getCategoryList(reqVO);
        List<ProductCategoryDO> all = productCategoryService.getCategoryList(new ProductCategoryListReqVO());
        // 断言
        assertEquals(1, list.size());
        assertEquals(4, all.size());
        assertPojoEquals(dbCategory, list.get(0));
    }