Python unittest
モジュールで、次の場合にassertTrue()
とassertEqual()
を使用することの長所または短所はありますか?
self.assertTrue(a == b)
self.assertEqual(a, b)
失敗出力をカスタマイズするため、常にassertEqual()
を使用してください。
メソッドはさまざまなヘルパーメソッドに委任して、たとえば、両方の引数のタイプが一致し、タイプ固有のヘルパーメソッドが登録されている場合、アサーションが失敗したときに2つの文字列または2つのリストがどのように異なるかを示します。
assertTrue()
は、アサーションが失敗したことのみを通知でき、理由は表示できません。
さらに、firstとsecondがまったく同じタイプで1つである場合
list
、Tuple
、dict
、set
、frozenset
、str
、またはサブクラスが登録する任意の型addTypeEqualityFunc()
より有用なデフォルトのエラーメッセージを生成するために、型固有の等価関数が呼び出されます( 型固有のメソッドのリスト も参照)。
利用可能な特定のアサーションがない場合にのみ、assertTrue()
を使用してください。
AssertEqualsよりassertTrueを好む場合があります。たとえばassertTrue(user.hasAdminRole())
のようなブール結果を確認したい場合
ただし、別のタイプの値を確認する場合は、assertEqualsを使用して意味のあるエラーメッセージを取得する必要があります。また、私の意見では読みやすく、どの部分が期待されるか、どの部分が値に対してどの部分をチェックするかを定義します。