ActivityUnitTestCase和startActivity

Mat*_*ias 9 android unit-testing

ActivityUnitTestCase的JavaDoc中,它说:

不要从你的setUp()方法调用.您必须从每个测试方法中调用此方法.

setUp考虑到该方法背后的整个想法就是这样做,即在每次测试之前执行某些操作,是不是在每个测试方法中都放入了等同于放入的东西?

另外,为什么我们不允许这样做呢?我试过了,它运作得很好.

Pau*_*her 3

看起来 setUp 与测试项目的类加载器一起运行,而实际的测试方法在测试的类加载器下与应用程序一起运行。例如,请参阅 RoboGuice 邮件列表上的讨论:

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

为什么会出现这种情况,我不确定(对我来说这似乎是一个非常奇怪的设计决定)。但结果是您无法在 setUp 方法中访问被测应用程序中的任何内容。这将 setUp 引入了巧克力茶壶领域。

请注意,如果您正在测试库项目,则此限制不适用,如下所述:

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

因为在这种情况下,测试和被测代码都在一个应用程序中。