我有类,它只使用id属性定义equals。它还有另一个方法(称为“are同”),它检查给定参数是否具有与此对象属性相等的一些重要属性(并且它忽略id)。
在测试中,我想检查两个集合是否使用arame as“custom equals”方法相同(最好忽略顺序,不依赖hashCode,这显然与arame不一致)。
我想知道,是否有比写包装纸更简单的方法。写这样的东西会更愉快
assertThat(actualCollection,
containsInAnyOrder_butUsingCustomEquals(expectedCollection, "areSame"));
Hamcrest示例在处理集合时只使用简单类型,虽然有可能比较像反射Equals这样的对象,但我还没有弄清楚如何组合匹配器来做我想要的事情。
我正在使用JUnit,所以Hamcrest似乎是第一个joice,因为JUnit已经包含了一些匹配器。但由于我还没有与之联系,我想使用AssertJ、Mockito或其他框架的解决方案是可以接受的。
那么,这在一些测试框架中是可行的还是我应该总结一下?
由于我很长时间的搜索并没有发现任何人甚至没有成功地询问这个问题,我想大多数人不会浪费时间为更多的行而苦恼,只是编写包装器和工厂来转换集合,对吗?希望我没有搜索错。。。
assertj擅长于此,尤其是其自定义比较策略
assertThat(actual).usingElementComparator(customComparator).containsOnlyElementsOf(expectedCollection);
或更方便(无需使用预期元素创建集合)
assertThat(actual).usingElementComparator(customComparator).containsOnly(expected1, expected2);
本文向大家介绍JAVA集合框架工具类自定义Collections集合方法,包括了JAVA集合框架工具类自定义Collections集合方法的使用技巧和注意事项,需要的朋友参考一下 项目中有需要多次统计 某些集合中 的某个属性值,所以考虑封装一个方法,让其其定义实现计算方式。 话不多说,看代码: 1、封装的自定义集合工具类:CollectionsCustom 2、测试类TestCollections
更新 更准确地说。我想知道这两个列表是否有相同的对象,两个列表都没有额外的对象,顺序无关紧要。例如:
假设我有一个没有equals()方法的类,它没有源代码。我想在该类的两个实例上声明相等。 我可以做多个断言: 我不喜欢这个解决方案,因为如果早期断言失败,我无法获得完全的平等性。 我可以自己手动比较并跟踪结果: 这给了我一幅完整的平等图,但很笨拙(我甚至没有考虑可能出现的空问题)。第三个选项是使用Comparator,但compareTo()不会告诉我哪些字段未通过相等。 有没有更好的实践可以从对
我正在为Python中的Robot Framework编写一个自定义测试库,我想这样导入它: 我把包含源代码的文件夹放在上,但我仍然收到错误: CustomLibrary类在初始化中定义。py文件,如AppiumLibrary中的: 我该如何解决这个问题,以便将其导入Robot框架?我希望将类定义保留在init文件中。
我最近为Thymeleaf编写了一个自定义方言以及一个自定义处理器,以处理一些自定义标记,并在某些情况下用不同的标记替换它们,但我在编写处理器测试时遇到了问题: 类需要重写 方法,这是我需要测试的方法。 因为我的处理器涉及从获取变量,所以我尝试模拟它;但是,、和类都声明为final,这意味着它们不能被Mockito模拟。 我真的不想实例化一个实际的对象,因为它依赖于其他5个无法模拟的对象,我最终会
本文向大家介绍java测试框架的方法,包括了java测试框架的方法的使用技巧和注意事项,需要的朋友参考一下 项目开发过程中使用的单元测试框架有Junit、TestNG以及Mockito,Junit和TestNG使用的比较多,Mockito最近才开始使用。 TestNG与JUnit的相同点 1. 使用annotation,且大部分annotation相同。 2. 都可以进行单元测试(Unit tes