2010-11-28 11 views
9

Im JavaDoc von ActivityUnitTestCase heißt es:ActivityUnitTestCase und startActivity

Rufen Sie nicht von Ihrem setUp() -Methode. Sie müssen diese Methode von jeder Ihrer Testmethoden aufrufen.

ist nicht etwas, in jeder Testmethode gleichwertig setzen, um es in setUp setzen, wenn man bedenkt, dass die ganze Idee hinter dieser Methode genau das zu tun ist, das heißt vor jedem Test etwas ausführen?

Auch, warum dürfen wir das nicht tun? Ich habe es versucht, und es funktioniert gut.

+0

in einem richtig abgestimmten Prüfstand, ja; Jeder Code, den Sie testen könnten - einschließlich Behauptungen, die Sie benotet haben müssen - kann sich frei in setUp umwandeln. In einem Android-Test-Rig, jedoch ... – Phlip

Antwort

3

Es scheint, dass setUp mit dem Klassenlader des Testprojekts ausgeführt wird, während die tatsächlichen Testmethoden mit dem Klassenlader der App unter Test ausgeführt werden. Siehe zum Beispiel, diese Diskussion auf der Mailingliste RoboGuice:

http://groups.google.com/group/roboguice/browse_thread/thread/2e129f87ead10b10

, warum dies der Fall ist, bin ich nicht sicher (es scheint wie eine sehr seltsame Design-Entscheidung für mich). Aber das Ergebnis ist, dass Sie in Ihrer AppUp-Methode in der getesteten App auf nichts zugreifen können. Was bewegt sich in Schokolade Teekanne Gebiet.

Beachten Sie, dass diese Einschränkung gilt nicht, wenn Sie ein Bibliotheksprojekt zu test wie hier beschrieben:

http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/

Da in diesem Fall die Tests und der im Test befindlichen Code sind alle in einer einzigen App.

-1

Ich denke, der Grund, dass sie sagen, dass ist eher eine "Best Practice" als ein hartnäckiger technischer Grund (Hinweis: Ich könnte mich irren). Der Grund dafür ist, dass, wenn jede einzelne Testmethode im Wesentlichen eigenständig ist, es einfacher ist, verschiedene Testsuites zu erstellen, die die GENAUEN Tests durchführen, die Sie benötigen, anstatt jeden Test im ActivityTestCase auf setUp() auszuführen.

Verwandte Themen