2012-10-19 38 views
0

我正在执行一些使用Android SDK的JUnit测试用例,并且我发现没有任何assertEquals在日志中显示其预期值。junit 3的失败跟踪窗口未显示预期值

这是一个示例断言。

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) 

正如你可以看到预期值都戴着点。这使得找出检查错误值的过程非常耗时。

有没有办法在异常消息中正确显示这些值?

回答

1

你可以做

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

,消息会在日志中。

+0

我想没有其他办法了。这是一个Android问题,还是所有的JUnit测试都这样做? – cgTag

+0

创建我自己的覆盖assertEquals(x,y)并将“x”添加到原因消息的测试类似乎是最简单的技巧。 – cgTag