以下のコードのスニペットのように、どちらも同じことを実行できるため、これらの両方の方法について混乱しています。
assertEquals()を使用する
String a = "Hello";
String b = "Hello";
assertEquals(a, b);
assertTrue()を使用する
assertTrue(a.equals(b));
これら2つの方法の実際の違いを誰かに教えてもらえますか?
assertEquals
は、ユニットテストフレームワークに実際に必要な情報を提供するため、より優れています。これにより、テストが失敗したときに、より適切なエラー情報を提供できます。
あなたが持っていたとしましょう
String a = "Hello";
String b = "Hi";
次に、テストの失敗は次のようになります。
// From assertEquals(a, b)
Error: Expected "Hi"; was "Hello"
// From assertTrue:
Error: Expected true; was false
これらのうち、値がおそらくかなり複雑な計算の結果であることを念頭に置いて、より多くの情報を提供すると思いますか?
(testngがインストールされていないため、これらはエラーメッセージで構成されていますが、ユニットテストフレームワークが提供するもののkindです。)