java - jUnit如何测试仅将数据从实体设置为dto的方法
问题描述
我对仅从实体获取数据并将其分配给 DTO 的测试方法有问题。我传递了空的 DTO,以及由 entityMother 创建的实体。该方法工作正常,但我不知道如何为此做出断言。我认为为这个 DTO 的每个值/属性创建断言并不是测试它的正确方法。
为什么我需要测试这样的方法?
- 将数据从实体设置为 DTO 的方法具有小的格式化特定字段。像拆分字符串等。
@Test
public void shouldSetAvailabilities() {
EditedTemplateShowDto editedTemplateDto = new EditedTemplateShowDto();
productTemplateEditService.getAndSetAvailabilities(editedTemplateDto, editedProduct);
//Here should be condition which check that the metod set data
}
我只需要检查该方法是否没有抛出任何错误,并且没有一个字段分配了空值。
解决方案
可能的解决方案是:
- 您可以将对象序列化为 JSON,然后比较结果字符串。(最干净的方式)
- 覆盖匹配的 toString() 然后比较结果字符串。
- 在测试中使用反射(检查变量名称)放置几个断言条件,以检查没有任何空值或未映射值(不良做法)。
推荐阅读
- c# - WPF MVVM:组合框 SelectedValue 绑定
- elasticsearch - 弹性搜索的内存管理
- asp.net-core - 在控制器中使用 Autofac IComponentContext 是否正确?
- android - Mockk 在 Kotlin 中设置集合的私有属性
- string - 为什么程序中字符串的const ref仍然有效?
- sql - Sql query by date interval
- reactjs - 每次道具更改时都会运行 React hooks 函数
- symfony - How to inject Translator in webTestCase?
- latex - 在latex中,整数符号'\int'在编译的pdf中显示为'\Delta',为什么?
- delphi - 附加字符串的文件的 TMemoryStream