Commit 05374216552e0178ebb04f6ce37e49aae42bddf8

Authored by YunaiV
1 parent bef06ef9

完善 DictDataServiceImpl 单元测试

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java
... ... @@ -224,7 +224,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
224 224 } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) {
225 225 userGroupService.validUserGroups(options);
226 226 } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) {
227   - dictDataApi.validDictDatas(DictTypeConstants.TASK_ASSIGN_SCRIPT,
  227 + dictDataApi.validateDictDataList(DictTypeConstants.TASK_ASSIGN_SCRIPT,
228 228 CollectionUtils.convertSet(options, String::valueOf));
229 229 } else {
230 230 throw new IllegalArgumentException(format("未知的规则类型({})", type));
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java
... ... @@ -19,7 +19,7 @@ public interface DictDataApi {
19 19 * @param dictType 字典类型
20 20 * @param values 字典数据值的数组
21 21 */
22   - void validDictDatas(String dictType, Collection<String> values);
  22 + void validateDictDataList(String dictType, Collection<String> values);
23 23  
24 24 /**
25 25 * 获得指定的字典数据,从缓存中
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java
... ... @@ -21,8 +21,8 @@ public class DictDataApiImpl implements DictDataApi {
21 21 private DictDataService dictDataService;
22 22  
23 23 @Override
24   - public void validDictDatas(String dictType, Collection<String> values) {
25   - dictDataService.validDictDatas(dictType, values);
  24 + public void validateDictDataList(String dictType, Collection<String> values) {
  25 + dictDataService.validateDictDataList(dictType, values);
26 26 }
27 27  
28 28 @Override
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java
... ... @@ -62,7 +62,7 @@ public class DictDataController {
62 62 @ApiOperation(value = "获得全部字典数据列表", notes = "一般用于管理后台缓存字典数据在本地")
63 63 // 无需添加权限认证,因为前端全局都需要
64 64 public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDatas() {
65   - List<DictDataDO> list = dictDataService.getDictDatas();
  65 + List<DictDataDO> list = dictDataService.getDictDataList();
66 66 return success(DictDataConvert.INSTANCE.convertList(list));
67 67 }
68 68  
... ... @@ -86,7 +86,7 @@ public class DictDataController {
86 86 @PreAuthorize("@ss.hasPermission('system:dict:export')")
87 87 @OperateLog(type = EXPORT)
88 88 public void export(HttpServletResponse response, @Valid DictDataExportReqVO reqVO) throws IOException {
89   - List<DictDataDO> list = dictDataService.getDictDatas(reqVO);
  89 + List<DictDataDO> list = dictDataService.getDictDataList(reqVO);
90 90 List<DictDataExcelVO> data = DictDataConvert.INSTANCE.convertList02(list);
91 91 // 输出
92 92 ExcelUtils.write(response, "字典数据.xls", "数据列表", DictDataExcelVO.class, data);
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java
... ... @@ -44,7 +44,7 @@ public interface DictDataService {
44 44 *
45 45 * @return 字典数据全列表
46 46 */
47   - List<DictDataDO> getDictDatas();
  47 + List<DictDataDO> getDictDataList();
48 48  
49 49 /**
50 50 * 获得字典数据分页列表
... ... @@ -60,7 +60,7 @@ public interface DictDataService {
60 60 * @param reqVO 列表请求
61 61 * @return 字典数据列表
62 62 */
63   - List<DictDataDO> getDictDatas(DictDataExportReqVO reqVO);
  63 + List<DictDataDO> getDictDataList(DictDataExportReqVO reqVO);
64 64  
65 65 /**
66 66 * 获得字典数据详情
... ... @@ -86,7 +86,7 @@ public interface DictDataService {
86 86 * @param dictType 字典类型
87 87 * @param values 字典数据值的数组
88 88 */
89   - void validDictDatas(String dictType, Collection<String> values);
  89 + void validateDictDataList(String dictType, Collection<String> values);
90 90  
91 91 /**
92 92 * 获得指定的字典数据
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java
... ... @@ -48,7 +48,7 @@ public class DictDataServiceImpl implements DictDataService {
48 48 private DictDataMapper dictDataMapper;
49 49  
50 50 @Override
51   - public List<DictDataDO> getDictDatas() {
  51 + public List<DictDataDO> getDictDataList() {
52 52 List<DictDataDO> list = dictDataMapper.selectList();
53 53 list.sort(COMPARATOR_TYPE_AND_SORT);
54 54 return list;
... ... @@ -60,7 +60,7 @@ public class DictDataServiceImpl implements DictDataService {
60 60 }
61 61  
62 62 @Override
63   - public List<DictDataDO> getDictDatas(DictDataExportReqVO reqVO) {
  63 + public List<DictDataDO> getDictDataList(DictDataExportReqVO reqVO) {
64 64 List<DictDataDO> list = dictDataMapper.selectList(reqVO);
65 65 list.sort(COMPARATOR_TYPE_AND_SORT);
66 66 return list;
... ... @@ -74,7 +74,7 @@ public class DictDataServiceImpl implements DictDataService {
74 74 @Override
75 75 public Long createDictData(DictDataCreateReqVO reqVO) {
76 76 // 校验正确性
77   - checkCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType());
  77 + validateDictDataForCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType());
78 78  
79 79 // 插入字典类型
80 80 DictDataDO dictData = DictDataConvert.INSTANCE.convert(reqVO);
... ... @@ -85,7 +85,7 @@ public class DictDataServiceImpl implements DictDataService {
85 85 @Override
86 86 public void updateDictData(DictDataUpdateReqVO reqVO) {
87 87 // 校验正确性
88   - checkCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType());
  88 + validateDictDataForCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType());
89 89  
90 90 // 更新字典类型
91 91 DictDataDO updateObj = DictDataConvert.INSTANCE.convert(reqVO);
... ... @@ -95,7 +95,7 @@ public class DictDataServiceImpl implements DictDataService {
95 95 @Override
96 96 public void deleteDictData(Long id) {
97 97 // 校验是否存在
98   - checkDictDataExists(id);
  98 + validateDictDataExists(id);
99 99  
100 100 // 删除字典数据
101 101 dictDataMapper.deleteById(id);
... ... @@ -106,18 +106,17 @@ public class DictDataServiceImpl implements DictDataService {
106 106 return dictDataMapper.selectCountByDictType(dictType);
107 107 }
108 108  
109   -
110   - private void checkCreateOrUpdate(Long id, String value, String dictType) {
  109 + private void validateDictDataForCreateOrUpdate(Long id, String value, String dictType) {
111 110 // 校验自己存在
112   - checkDictDataExists(id);
  111 + validateDictDataExists(id);
113 112 // 校验字典类型有效
114   - checkDictTypeValid(dictType);
  113 + validateDictTypeExists(dictType);
115 114 // 校验字典数据的值的唯一性
116   - checkDictDataValueUnique(id, dictType, value);
  115 + validateDictDataValueUnique(id, dictType, value);
117 116 }
118 117  
119 118 @VisibleForTesting
120   - public void checkDictDataValueUnique(Long id, String dictType, String value) {
  119 + public void validateDictDataValueUnique(Long id, String dictType, String value) {
121 120 DictDataDO dictData = dictDataMapper.selectByDictTypeAndValue(dictType, value);
122 121 if (dictData == null) {
123 122 return;
... ... @@ -132,7 +131,7 @@ public class DictDataServiceImpl implements DictDataService {
132 131 }
133 132  
134 133 @VisibleForTesting
135   - public void checkDictDataExists(Long id) {
  134 + public void validateDictDataExists(Long id) {
136 135 if (id == null) {
137 136 return;
138 137 }
... ... @@ -143,7 +142,7 @@ public class DictDataServiceImpl implements DictDataService {
143 142 }
144 143  
145 144 @VisibleForTesting
146   - public void checkDictTypeValid(String type) {
  145 + public void validateDictTypeExists(String type) {
147 146 DictTypeDO dictType = dictTypeService.getDictType(type);
148 147 if (dictType == null) {
149 148 throw exception(DICT_TYPE_NOT_EXISTS);
... ... @@ -154,7 +153,7 @@ public class DictDataServiceImpl implements DictDataService {
154 153 }
155 154  
156 155 @Override
157   - public void validDictDatas(String dictType, Collection<String> values) {
  156 + public void validateDictDataList(String dictType, Collection<String> values) {
158 157 if (CollUtil.isEmpty(values)) {
159 158 return;
160 159 }
... ...
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java renamed to yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImplTest.java
... ... @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.service.dict;
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 5 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
8 7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;
9 8 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;
... ... @@ -20,16 +19,18 @@ import javax.annotation.Resource;
20 19 import java.util.List;
21 20 import java.util.function.Consumer;
22 21  
  22 +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
23 23 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
24 24 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
25 25 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
26 26 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
  27 +import static java.util.Collections.singletonList;
27 28 import static org.junit.jupiter.api.Assertions.*;
28 29 import static org.mockito.ArgumentMatchers.eq;
29 30 import static org.mockito.Mockito.when;
30 31  
31 32 @Import(DictDataServiceImpl.class)
32   -public class DictDataServiceTest extends BaseDbUnitTest {
  33 +public class DictDataServiceImplTest extends BaseDbUnitTest {
33 34  
34 35 @Resource
35 36 private DictDataServiceImpl dictDataService;
... ... @@ -40,6 +41,23 @@ public class DictDataServiceTest extends BaseDbUnitTest {
40 41 private DictTypeService dictTypeService;
41 42  
42 43 @Test
  44 + public void testGetDictDataList() {
  45 + // mock 数据
  46 + DictDataDO dictDataDO01 = randomDictDataDO().setDictType("yunai").setSort(2);
  47 + dictDataMapper.insert(dictDataDO01);
  48 + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yunai").setSort(1);
  49 + dictDataMapper.insert(dictDataDO02);
  50 + // 准备参数
  51 +
  52 + // 调用
  53 + List<DictDataDO> dictDataDOList = dictDataService.getDictDataList();
  54 + // 断言
  55 + assertEquals(2, dictDataDOList.size());
  56 + assertPojoEquals(dictDataDO02, dictDataDOList.get(0));
  57 + assertPojoEquals(dictDataDO01, dictDataDOList.get(1));
  58 + }
  59 +
  60 + @Test
43 61 public void testGetDictDataPage() {
44 62 // mock 数据
45 63 DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到
... ... @@ -49,11 +67,11 @@ public class DictDataServiceTest extends BaseDbUnitTest {
49 67 });
50 68 dictDataMapper.insert(dbDictData);
51 69 // 测试 label 不匹配
52   - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setLabel("艿")));
  70 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setLabel("艿")));
53 71 // 测试 dictType 不匹配
54   - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setDictType("nai")));
  72 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai")));
55 73 // 测试 status 不匹配
56   - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
  74 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
57 75 // 准备参数
58 76 DictDataPageReqVO reqVO = new DictDataPageReqVO();
59 77 reqVO.setLabel("芋");
... ... @@ -69,7 +87,7 @@ public class DictDataServiceTest extends BaseDbUnitTest {
69 87 }
70 88  
71 89 @Test
72   - public void testGetDictDataList() {
  90 + public void testGetDictDataList_export() {
73 91 // mock 数据
74 92 DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到
75 93 o.setLabel("芋艿");
... ... @@ -78,11 +96,11 @@ public class DictDataServiceTest extends BaseDbUnitTest {
78 96 });
79 97 dictDataMapper.insert(dbDictData);
80 98 // 测试 label 不匹配
81   - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setLabel("艿")));
  99 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setLabel("艿")));
82 100 // 测试 dictType 不匹配
83   - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setDictType("nai")));
  101 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai")));
84 102 // 测试 status 不匹配
85   - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
  103 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
86 104 // 准备参数
87 105 DictDataExportReqVO reqVO = new DictDataExportReqVO();
88 106 reqVO.setLabel("芋");
... ... @@ -90,13 +108,27 @@ public class DictDataServiceTest extends BaseDbUnitTest {
90 108 reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
91 109  
92 110 // 调用
93   - List<DictDataDO> list = dictDataService.getDictDatas(reqVO);
  111 + List<DictDataDO> list = dictDataService.getDictDataList(reqVO);
94 112 // 断言
95 113 assertEquals(1, list.size());
96 114 assertPojoEquals(dbDictData, list.get(0));
97 115 }
98 116  
99 117 @Test
  118 + public void testGetDictData() {
  119 + // mock 数据
  120 + DictDataDO dbDictData = randomDictDataDO();
  121 + dictDataMapper.insert(dbDictData);
  122 + // 准备参数
  123 + Long id = dbDictData.getId();
  124 +
  125 + // 调用
  126 + DictDataDO dictData = dictDataService.getDictData(id);
  127 + // 断言
  128 + assertPojoEquals(dbDictData, dictData);
  129 + }
  130 +
  131 + @Test
100 132 public void testCreateDictData_success() {
101 133 // 准备参数
102 134 DictDataCreateReqVO reqVO = randomPojo(DictDataCreateReqVO.class,
... ... @@ -148,54 +180,54 @@ public class DictDataServiceTest extends BaseDbUnitTest {
148 180 }
149 181  
150 182 @Test
151   - public void testCheckDictDataExists_success() {
  183 + public void testValidateDictDataExists_success() {
152 184 // mock 数据
153 185 DictDataDO dbDictData = randomDictDataDO();
154 186 dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据
155 187  
156 188 // 调用成功
157   - dictDataService.checkDictDataExists(dbDictData.getId());
  189 + dictDataService.validateDictDataExists(dbDictData.getId());
158 190 }
159 191  
160 192 @Test
161   - public void testCheckDictDataExists_notExists() {
162   - assertServiceException(() -> dictDataService.checkDictDataExists(randomLongId()), DICT_DATA_NOT_EXISTS);
  193 + public void testValidateDictDataExists_notExists() {
  194 + assertServiceException(() -> dictDataService.validateDictDataExists(randomLongId()), DICT_DATA_NOT_EXISTS);
163 195 }
164 196  
165 197 @Test
166   - public void testCheckDictTypeValid_success() {
  198 + public void testValidateDictTypeExists_success() {
167 199 // mock 方法,数据类型被禁用
168 200 String type = randomString();
169 201 when(dictTypeService.getDictType(eq(type))).thenReturn(randomDictTypeDO(type));
170 202  
171 203 // 调用, 成功
172   - dictDataService.checkDictTypeValid(type);
  204 + dictDataService.validateDictTypeExists(type);
173 205 }
174 206  
175 207 @Test
176   - public void testCheckDictTypeValid_notExists() {
177   - assertServiceException(() -> dictDataService.checkDictTypeValid(randomString()), DICT_TYPE_NOT_EXISTS);
  208 + public void testValidateDictTypeExists_notExists() {
  209 + assertServiceException(() -> dictDataService.validateDictTypeExists(randomString()), DICT_TYPE_NOT_EXISTS);
178 210 }
179 211  
180 212 @Test
181   - public void testCheckDictTypeValid_notEnable() {
  213 + public void testValidateDictTypeExists_notEnable() {
182 214 // mock 方法,数据类型被禁用
183 215 String dictType = randomString();
184 216 when(dictTypeService.getDictType(eq(dictType))).thenReturn(
185 217 randomPojo(DictTypeDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
186 218  
187 219 // 调用, 并断言异常
188   - assertServiceException(() -> dictDataService.checkDictTypeValid(dictType), DICT_TYPE_NOT_ENABLE);
  220 + assertServiceException(() -> dictDataService.validateDictTypeExists(dictType), DICT_TYPE_NOT_ENABLE);
189 221 }
190 222  
191 223 @Test
192   - public void testCheckDictDataValueUnique_success() {
  224 + public void testValidateDictDataValueUnique_success() {
193 225 // 调用,成功
194   - dictDataService.checkDictDataValueUnique(randomLongId(), randomString(), randomString());
  226 + dictDataService.validateDictDataValueUnique(randomLongId(), randomString(), randomString());
195 227 }
196 228  
197 229 @Test
198   - public void testCheckDictDataValueUnique_valueDuplicateForCreate() {
  230 + public void testValidateDictDataValueUnique_valueDuplicateForCreate() {
199 231 // 准备参数
200 232 String dictType = randomString();
201 233 String value = randomString();
... ... @@ -206,12 +238,12 @@ public class DictDataServiceTest extends BaseDbUnitTest {
206 238 }));
207 239  
208 240 // 调用,校验异常
209   - assertServiceException(() -> dictDataService.checkDictDataValueUnique(null, dictType, value),
  241 + assertServiceException(() -> dictDataService.validateDictDataValueUnique(null, dictType, value),
210 242 DICT_DATA_VALUE_DUPLICATE);
211 243 }
212 244  
213 245 @Test
214   - public void testCheckDictDataValueUnique_valueDuplicateForUpdate() {
  246 + public void testValidateDictDataValueUnique_valueDuplicateForUpdate() {
215 247 // 准备参数
216 248 Long id = randomLongId();
217 249 String dictType = randomString();
... ... @@ -223,10 +255,96 @@ public class DictDataServiceTest extends BaseDbUnitTest {
223 255 }));
224 256  
225 257 // 调用,校验异常
226   - assertServiceException(() -> dictDataService.checkDictDataValueUnique(id, dictType, value),
  258 + assertServiceException(() -> dictDataService.validateDictDataValueUnique(id, dictType, value),
227 259 DICT_DATA_VALUE_DUPLICATE);
228 260 }
229 261  
  262 + @Test
  263 + public void testCountByDictType() {
  264 + // mock 数据
  265 + dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("yunai")));
  266 + dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("tudou")));
  267 + dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("yunai")));
  268 + // 准备参数
  269 + String dictType = "yunai";
  270 +
  271 + // 调用
  272 + long count = dictDataService.countByDictType(dictType);
  273 + // 校验
  274 + assertEquals(2L, count);
  275 + }
  276 +
  277 + @Test
  278 + public void testValidateDictDataList_success() {
  279 + // mock 数据
  280 + DictDataDO dictDataDO = randomDictDataDO().setStatus(CommonStatusEnum.ENABLE.getStatus());
  281 + dictDataMapper.insert(dictDataDO);
  282 + // 准备参数
  283 + String dictType = dictDataDO.getDictType();
  284 + List<String> values = singletonList(dictDataDO.getValue());
  285 +
  286 + // 调用,无需断言
  287 + dictDataService.validateDictDataList(dictType, values);
  288 + }
  289 +
  290 + @Test
  291 + public void testValidateDictDataList_notFound() {
  292 + // 准备参数
  293 + String dictType = randomString();
  294 + List<String> values = singletonList(randomString());
  295 +
  296 + // 调用, 并断言异常
  297 + assertServiceException(() -> dictDataService.validateDictDataList(dictType, values), DICT_DATA_NOT_EXISTS);
  298 + }
  299 +
  300 + @Test
  301 + public void testValidateDictDataList_notEnable() {
  302 + // mock 数据
  303 + DictDataDO dictDataDO = randomDictDataDO().setStatus(CommonStatusEnum.DISABLE.getStatus());
  304 + dictDataMapper.insert(dictDataDO);
  305 + // 准备参数
  306 + String dictType = dictDataDO.getDictType();
  307 + List<String> values = singletonList(dictDataDO.getValue());
  308 +
  309 + // 调用, 并断言异常
  310 + assertServiceException(() -> dictDataService.validateDictDataList(dictType, values),
  311 + DICT_DATA_NOT_ENABLE, dictDataDO.getLabel());
  312 + }
  313 +
  314 + @Test
  315 + public void testGetDictData_dictType() {
  316 + // mock 数据
  317 + DictDataDO dictDataDO = randomDictDataDO().setDictType("yunai").setValue("1");
  318 + dictDataMapper.insert(dictDataDO);
  319 + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yunai").setValue("2");
  320 + dictDataMapper.insert(dictDataDO02);
  321 + // 准备参数
  322 + String dictType = "yunai";
  323 + String value = "1";
  324 +
  325 + // 调用
  326 + DictDataDO dbDictData = dictDataService.getDictData(dictType, value);
  327 + // 断言
  328 + assertEquals(dictDataDO, dbDictData);
  329 + }
  330 +
  331 + @Test
  332 + public void testParseDictData() {
  333 + // mock 数据
  334 + DictDataDO dictDataDO = randomDictDataDO().setDictType("yunai").setLabel("1");
  335 + dictDataMapper.insert(dictDataDO);
  336 + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yunai").setLabel("2");
  337 + dictDataMapper.insert(dictDataDO02);
  338 + // 准备参数
  339 + String dictType = "yunai";
  340 + String label = "1";
  341 +
  342 + // 调用
  343 + DictDataDO dbDictData = dictDataService.parseDictData(dictType, label);
  344 + // 断言
  345 + assertEquals(dictDataDO, dbDictData);
  346 + }
  347 +
230 348 // ========== 随机对象 ==========
231 349  
232 350 @SafeVarargs
... ...