开发者社区官方技术圈

阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。

阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。

1

回答

1

回答

0

回答

游客lmkkns5ck6auu 2022-10-26 369浏览量 回答数 0

1

回答

1

回答

1

回答

1

回答

1

回答

1

回答

0

回答

游客lmkkns5ck6auu 2022-10-26 282浏览量 回答数 0

1

回答

1

回答

1

回答

1

回答

1

回答

1

回答

1

回答

1

回答

1

回答

• JSON 反序列化字符串为数据对象,大大减少了数据对象的模拟代码; • JSON 序列化数据对象为字符串,把数据对象验证简化为字符串验证,大大减少 了数据对象的验证代码。1. 模拟方法返回多个值 当一个方法需要多次调用,但返回值跟输入参数无关,只跟调用顺序有关的时,可 以用数 组 来 模 拟 方 法 返 回 值 。 先 加 载 一个列表 JSON 资 源 文 件 ,通过 JSON.parseObject方法转化为数组,然后利用Mockito的doReturn-when或when�thenReturn 语法来模拟方法返回多个值。

  1. 模拟方法返回对应值 当一个方法需要多次调用,但返回值跟调用顺序有关,只能调输入参数有关的时, 可以用 映 射 来 模 拟 方 法 返 回 值 。 先 加 载 一 个 映 射 JSON 资 源 文 件 ,通过 JSON.parseObject 方法转化为映射,然后利用 Mockito 的 doAnswer-when 或 when-thenAnswer 语法来模拟方法返回对应值(根据指定参数返回映射中的对应 值)。

  2. 验证多次方法调用参数 当验证一个方法调用参数时,需要用 ArgumentCaptor 来捕获这个参数,然后通过 getValue 方法验证这个参数。如果这个方法被多次调用,就没有必要依次验证了, 可以通过 getAllValues 方法获取一个列表,然后通过 JSON.toJSONString 转化为 JSON 字符串,然后跟 JSON 资源文件进行统一验证。

以上内容摘自《Java工程师必读手册》电子书,点击https://developer.aliyun.com/ebook/download/7780 可下载完整版

游客c3gxxcx6cqeyo 评论 0
  1. 完全透传的对象 1) 完全透传的参数对象 在测试方法中,有些参数没有被任何修改,只是完全被透传而已。 其中,不需要 ArgumentCaptor 去捕获 userDAO.batchCreate 的参数并验证参数 值,这里只需要验证 createList 是不是同一个对象即可。 2) 完全透传的返回对象 在测试方法中,有些返回值没有被任何修改,只是完全被透传而已。 其中,userList 对象不需要构造数据,只需要验证是不是同一个对象即可。

  2. 完全透传的属性 1) 完全透传的参数值属性 在测试方法中,有些参数值属性没有被任何修改,只是完全被透传而已。 其中,user 对象不需要构造数据,只需要验证是不是同一个对象即可。 2) 完全透传的返回值属性 在测试方法中,有些返回值属性没有被任何修改,只是完全被透传而已。 其中,user 对象不需要构造数据,只需要验证是不是同一个对象即可。

  3. 仅用少数字段的对象 1) 仅用少数字段的参数值对象 在测试方法中,有些参数值对象字段虽多,但只会用到其中少数字段。 其中,不需要构造参数值 userCreate 的所有属性字段,只需构造使用到的 name 属 性字段即可。 2) 仅用少数字段的返回值对象 在测试方法中,有些返回值对象字段虽多,但只会用到其中少数字段。 其中,不需要构造返回值 user 的所有属性字段,只需构造使用到的 roleId 属性字 段即可。

以上内容摘自《Java工程师必读手册》电子书,点击https://developer.aliyun.com/ebook/download/7780 可下载完整版

游客c3gxxcx6cqeyo 评论 0

1

回答

1

回答

1

回答

游客lmkkns5ck6auu 2022-10-26 280浏览量 回答数 1

1

回答

1

回答

1

回答

1

回答

1

回答

公告

阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。

展开