23
equalsメソッドなしで2つのクラスの等価性をアサートするにはどうすればよいですか?
ソースがない、equals()メソッドのないクラスがあるとします。そのクラスの2つのインスタンスで同等であることを主張したいと思います。 複数のアサートを実行できます: assertEquals(obj1.getFieldA(), obj2.getFieldA()); assertEquals(obj1.getFieldB(), obj2.getFieldB()); assertEquals(obj1.getFieldC(), obj2.getFieldC()); ... 初期のアサートが失敗した場合、完全な等価性の画像が得られないため、このソリューションは好きではありません。 自分で手動で比較して結果を追跡できます。 String errorStr = ""; if(!obj1.getFieldA().equals(obj2.getFieldA())) { errorStr += "expected: " + obj1.getFieldA() + ", actual: " + obj2.getFieldA() + "\n"; } if(!obj1.getFieldB().equals(obj2.getFieldB())) { errorStr += "expected: " + obj1.getFieldB() + ", actual: " + obj2.getFieldB() + "\n"; } ... …
111
java
unit-testing
junit