我还是一个 EMF 新手,也许我的问题并没有太多意义,或者我假设了错误的事情。
我正在开发一个模型驱动的项目,所以我定义了一个 ecore 元模型并生成了相关代码。现在,我正在尝试进行单元测试,并需要能够测试对象之间的相等性,特别是扩展 EObject 的对象之间的相等性。
我尝试使用 EcoreUtil.equals() 进行测试,但它始终返回 false,因为我的对象包含在列表(EList 类)中的引用未按相同顺序排序。然而,我在元模型中明确定义了这些参考不是有序的:我更希望像 Set 而不是 List 那样使用它们。
因此,我最终决定在我的生成的 *Impl 类中实现自己的 equals 方法,即使在 javadoc 中被反对,但是否有另一种更优雅的方法来测试 EMF 对象之间的结构相等性,而不考虑列表顺序?
谢谢!
我正在开发一个模型驱动的项目,所以我定义了一个 ecore 元模型并生成了相关代码。现在,我正在尝试进行单元测试,并需要能够测试对象之间的相等性,特别是扩展 EObject 的对象之间的相等性。
我尝试使用 EcoreUtil.equals() 进行测试,但它始终返回 false,因为我的对象包含在列表(EList 类)中的引用未按相同顺序排序。然而,我在元模型中明确定义了这些参考不是有序的:我更希望像 Set 而不是 List 那样使用它们。
因此,我最终决定在我的生成的 *Impl 类中实现自己的 equals 方法,即使在 javadoc 中被反对,但是否有另一种更优雅的方法来测试 EMF 对象之间的结构相等性,而不考虑列表顺序?
谢谢!
[1]
和[1, 1, 1]
将被报告为相等。 - Lii