Android单元测试

单元测试是针对程序模块来进行正确性检验的测试工作.程序单元是应用的最小可测试部件.单元测试有助于及早发现修改和重构导致的bug,从而确保基础库的稳定和可用.

Java单元测试框架JUnit

使用Android  studio创建应用工程的时候,在src/test下默认生成单元测试目录,同时给出JUnit的简单例子.

public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() throws Exception {
        assertEquals(4, 2 + 2);
    }
}
使用规则:

单元测试类的命名一般以Test结尾.

单元测试方法需要使用@Test注解标记.

验证单元测试的结果一般使用Assert类中的方法:assertEquals,assertTrue,assertNotEquals,fail等.

在JUnit中,除了@Test,常用的注解还有:

@Before:表示在每个被@Test标记的测试方法调用之前,都要先调用被@标记的方法.

@After:表示在每个被@Test标记的测试方法之后,都要接着调用被After标记的方法.

@BeforeClass:在执行一个测试类的所有测试方法之前,会调用一次这个测试类中被@BeforeClass标志的方法.

@AfterClass:在执行一个测试类的所有测试方法之后,会调用一次这个测试类中被@AfterClass标志的方法.

@Ignore:测试类中某些测试方法可能暂时处于不可测试阶段,那么为了保证不影响整个测试类的正常运行,可以使    用@Ignore标记这些测试方法.

Android单元测试框架Robolectric3.0

Robolectric3.0的设计思想是通过实现一套JVM能够运行的Android代码,从而实现脱离Android环境进行测试.

Robolectric3.0集成:Robolectric3.0依赖于JUnit

    testCompile 'junit:junit:4.12'
    testCompile 'org.robolectric:robolectric:3.0'

Robolectric可以方便地对Android中的Activity,fragment,service,broadcastReceiver等组件进行单元测试,还可以测试Activity的生命周期,然后判断控件的取值是否正确.

@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class)
public class RoboTest {
    @Test
    public void titleIsCorrect() throws Exception {
        Activity activity = Robolectric.setupActivity(MainActivity.class);
        assertTrue(activity.getTitle().toString().equals("myTest"));
    }

    @Test
    public void testLifecycle() throws Exception {
        ActivityController<MainActivity> activityController = 
                Robolectric.buildActivity(MainActivity.class).create().start();
        Activity activity = activityController.get();
        TextView textView = activity.findViewById(R.id.tv);
        assertEquals("onCreate",textView.getText().toString() );
        activityController.resume();
        assertEquals("onResume",textView.getText().toString());

    }
}

Robolectric不仅支持对UI组件的测试,同时还支持向日志输出,网络请求,数据库等方面的测试.







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值