2012-10-19 1 views
0

J'exécute des cas de test JUnit avec le SDK Android, et j'ai constaté qu'aucun des assertEquals ne montre leurs valeurs attendues dans le journal.Fenêtre de trace d'échec pour junit 3 n'affiche pas les valeurs attendues

Voici un exemple d'assertion.

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

Voici l'exception de défaillance.

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) 

Comme vous pouvez le voir les attendus valeurs sont masquées par des points. Cela prend beaucoup de temps pour déterminer quelles mauvaises valeurs ont été vérifiées.

Existe-t-il un moyen d'afficher ces valeurs correctement dans les messages d'exception?

Répondre

1

Vous pouvez faire

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

et le message sera dans le journal.

+0

Je suppose qu'il n'y a pas d'autre moyen. S'agit-il d'un problème Android ou tous les tests JUnit le font-ils? – cgTag

+0

Créer ma propre classe de test qui écrase assertEquals (x, y) et ajoute "x" au message de raison semble être l'astuce la plus simple. – cgTag

Questions connexes