我在JUnit中测试我的全局应用程序。 我已成功设置我的应用程序,
public classs TestApplication extends ApplicationTestCase<SomeApplication> {
private SomeApplication app;
public TestApplication(String name) {
super(SomeApplication.class);
setName(name);
}
@Override
public void setUp() throws Exception {
super.setUp();
createApplication();
app = getApplication();
}
}
我的问题是,如何在测试用例活动中访问TestApplication
,如
public class ActivityTest extends ActivityInstrumentationTestCase2<SomeActivity> {
}
另外,您如何访问SomeApplication
的方法?
答案 0 :(得分:0)
您提供的两个代码段不能一起工作。这是两个独立的测试用例,旨在彼此独立运行。
ActivityInstrumentationTestCase的方法是getActivity(),它返回你的Activity,它也是一个Context。该上下文有getApplicationContext(),可以强制转换为您的Application子类。
这就是您在ActivityInstrumentationTestCase中访问它的方法。其中有自己的设置和拆卸方法被覆盖。实际测试以您创建的方法运行,该方法以&#39; test&#39;开头,如
testSomeApplication() {}
ActivityInstrumentationTestCase更适用于集成和功能测试,而不是单元测试。您正在测试的设备实际上将运行您的应用程序,启动到您将测试用例设置为的活动(在这种情况下为SomeActivity)。
更多的单元测试&#34;在您的Application子类中,您可以使用ApplicationTestCase。在这种情况下访问应用程序实例非常简单:
getApplication()
http://developer.android.com/reference/android/test/ApplicationTestCase.html#getApplication()