ActivityInstrumentationTestCase2 主要用来测试一个或多个Activity的功能测试,使用和最终应用同样的运行环境来测试Activity的功能。可以使用正常系统Context (非Mock)来测试Activity的功能。 并允许你创建一些Mock Intent 用来测试Activity的响应。要注意的是,这种TestCase不允许使用Mock的Context和Application对象测试,也就是说你必须使用和应用程序实际运行的环境来测试。
ActivityInstrumentationTestCase2 的继承关系如下图所示:
它的getActivity() 方法可以取得被测试的Activity的实例对象。
ApiDemosTest 的代码如下:
public class ApiDemosTest extends ActivityInstrumentationTestCase2<ApiDemos> { public ApiDemosTest() { super(ApiDemos.class); } public void testActivityTestCaseSetUpProperly() { assertNotNull("activity should be launched successfully", getActivity()); } }
测试方法testActivityTestCaseSetUpProperly 使用getActivity() ,主要目的是测试本测试的Activity能否正常启动,测试getActivity() 是否非空。
此外ActivityInstrumentationTestCase2 还提供了两个方法:
- setActivityInitialTouchMode(boolean) 在启动Activity之前设置TouchMode
- setActivityIntent(Intent) 可以设置启动Activity的Intent 对象来测试Activity