我正在Android中运行一个junit测试,它扩展了ActivityInstrumentationTestCase2。我正在使用它来启动一项活动。
活动使用应用程序对象的子类来获取一些参数。我从上下文中获取应用程序对象。
不幸的是,ActivityInstrumentationTestCase2不提供对上下文的访问。有没有办法在获取活动之前访问上下文?
答案 0 :(得分:12)
您可以从检测对象获取应用程序上下文:
getInstrumentation().getTargetContext().getApplicationContext()
答案 1 :(得分:3)
为了能够使用setApplication()注入应用程序,您应该使用ActivityUnitTestCase,因为它仅在此测试用例类中可用。
默认情况下,ActivityUnitTestCase会创建一个隐藏的MockApplication对象,用作被测试的应用程序。
答案 2 :(得分:0)
对于那些使用
的人AndroidTestCase
并且需要app应用程序子类:
MyApplication context = (MyApplication) getContext().getApplicationContext();