使用JUnit比较ArrayLists是否相等的简单方法是什么?我需要实现相等接口吗?或者有没有一种简单的JUnit方法可以让它变得更容易?
发布于 2009-10-02 21:55:55
您不需要对列表相等做任何特殊操作,只需使用assertEquals即可。
ArrayList和其他列表通过使用对象的equals()方法检查列表中相应位置的所有对象是否相等来实现equals()。因此,您可能希望检查列表中的对象是否正确实现了equals。
发布于 2009-10-02 19:16:45
您可能需要查看List.equals
的文档。
发布于 2009-10-03 07:13:26
我认为这可能是一个稍微太简单的答案(尽管它是正确的)。测试ArrayLists中的equals意味着您已经考虑了元素的相等。如果元素是整数,那就没问题了。但是如果它们是您自己的域类的实例,那么您应该意识到围绕相等(和克隆)的陷阱。请查看:
http://www.artima.com/lejava/articles/equality.html
获取关于实现相等的一组很好的技巧。另外:如果您需要克隆对象,请考虑使用复制构造函数,而不是实现cloneable。Cloneable引入了一系列你可能意想不到的问题。
https://stackoverflow.com/questions/1512689
复制相似问题