0

Android SDKを使用していくつかのJUnitテストケースを実行していますが、どのassertEqualsもログに期待値を表示していないことがわかりました。

これがアサーションの例です。

assertEquals("mocks", model.getUseTable());

これが失敗の例外です。

junit.framework.ComparisonFailure: expected:<...k...> but was:<......>
at ca.thinkingmedia.gems.test.models.AbstractModelTest.test_Auto_Table_Name(AbstractModelTest.java:17)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1575)

ご覧のとおり、期待値はドットでマスクされています。これにより、チェックされた間違った値を特定するのに非常に時間がかかります。

これらの値を例外メッセージに正しく表示する方法はありますか?

4

1 に答える 1

1

できるよ

final String actual = model.getUseTable()
assertEquals("Expecting mocks but was " + actual, "mocks", actual);

メッセージはログに記録されます。

于 2012-10-19T03:06:07.327 に答える