Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

JUnit4规则与ATSL

$
0
0

ActivityTestRule
ServiceTestRule

Android测试支持库,提供了一套JUnit的规则用于AndroidJUnitRunner。JUnit规则提供了更多的灵活性,并减少了测试中所需的样板代码。

TestCase 的ActivityInstrumentationTestCase2ServiceTestCase声明已弃用,使用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 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>