ActivityTestRule
ServiceTestRule
Android测试支持库,提供了一套JUnit的规则用于AndroidJUnitRunner。JUnit规则提供了更多的灵活性,并减少了测试中所需的样板代码。
TestCase 的ActivityInstrumentationTestCase2和ServiceTestCase声明已弃用,使用ActivityTestRule或ServiceTestRule,进行替换。
ActivityTestRule
此规则提供单个Activity的功能测试,测试下的活动可以在测试过程中通过调用ActivityTestRule#getActivity()。来访问Activity,测试函数需要添加@Test,所有方法之后它将会执行@After回调。相反任何方法之前会调用@Before注解下的函数。
@LargeTest
public class MyClassTest {
@Rule
public ActivityTestRule<MyClass> mActivityRule = new ActivityTestRule(MyClass.class);
@Test
public void myClassMethod_ReturnsTrue() { ... }}
ServiceTestRule
此规则提供了在测试持续时间之前和之后启动和关闭服务的简化机制,它还保证在启动(或绑定)服务时成功连接服务
注:此规则不支持IntentService,因为它会自动销毁时
IntentService#onHandleIntent(android.content.Intent)完成所有未完成的命令。因此,不能保证及时建立成功的连接。
@RunWith(AndroidJUnit4.class)@MediumTestpublic class MyServiceTest {
@Rule
public final ServiceTestRule mServiceRule = new ServiceTestRule();
@Test
public void testWithStartedService() {
mServiceRule.startService(
new Intent(InstrumentationRegistry.getTargetContext(), MyService.class));
// test code
}
@Test
public void testWithBoundService() {
IBinder binder = mServiceRule.bindService(
new Intent(InstrumentationRegistry.getTargetContext(), MyService.class));
MyService service = ((MyService.LocalBinder) binder).getService();
assertTrue("True wasn't returned", service.doSomethingToReturnTrue());
}}
UI Automator
UI Automator是一个UI测试框架,适用于跨系统和已安装应用程序的跨应用程序功能UI测试。
对于UI的Automator的文档中developers.android.com。
引用
UI Automator https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html
作者:o279642707 发表于2017/1/23 14:40:18 原文链接
阅读:6 评论:0 查看评论