私はテストレポートを生成するとき、私はJUnit assertEqualsを使用したカスタム例外メッセージ?
は「私のエラーメッセージ期待(初)は、第二(だっ取得、アサートは、次に、2つの数字
Assert.assertEquals("My error message", First , Second);
を比較するために等しく使用しています) "
斜体で入力した部分はどのようにカスタマイズできますか?数字の形式は?
私はテストレポートを生成するとき、私はJUnit assertEqualsを使用したカスタム例外メッセージ?
は「私のエラーメッセージ期待(初)は、第二(だっ取得、アサートは、次に、2つの数字
Assert.assertEquals("My error message", First , Second);
を比較するために等しく使用しています) "
斜体で入力した部分はどのようにカスタマイズできますか?数字の形式は?
メッセージは、Assert
クラスでハードコードされています。カスタムメッセージを生成するために、独自のコードを記述する必要があります。
if (!first.equals(second)) {
throw new AssertionFailedError(
String.format("bespoke message here", first, second));
}
(注:上記のラフな例です - あなたはなどヌルをチェックしたいと思うことはありますかを確認するためにAssert.java
のコードを参照してください。完了)。
あなたはこのようなものを使用することができます:私はAssertクラスでこの
static String format(String message, Object expected, Object actual) {
String formatted= "";
if (message != null && !message.equals(""))
formatted= message + " ";
String expectedString= String.valueOf(expected);
String actualString= String.valueOf(actual);
if (expectedString.equals(actualString))
return formatted + "expected: "
+ formatClassAndValue(expected, expectedString)
+ " but was: " + formatClassAndValue(actual, actualString);
else
return formatted + "expected:<" + expectedString + "> but was:<"
+ actualString + ">";
}
を見つけたあなたの答えのおかげで、私はJUnitのAssertクラスを変更することはできません推測
int a=1, b=2;
String str = "Failure: I was expecting %d to be equal to %d";
assertTrue(String.format(str, a, b), a == b);
を、しかし、同じ名前のプロジェクトで新しいクラスを作成することはできますが、フォーマットを変更するだけです。そうですか?それとも、クラスのフォーマットを変更するだけで、スローされる例外に影響しますか?
はい、このアプローチをとることができます。これは本質的には私の答えで示唆していることです - メッセージを変更する必要がある場合は、テストを行うための独自のコードを記述する必要があります。 –
私はあなたがJavaを使用していると仮定しました。 Scalaの場合は、それに応じてタグを調整してください。 –