最近在学习测试驱动开发(Test-Driven Development),测试驱动开始是极限编程的一种方式,提倡在真正编写代码之前先根据需求编写测试代码(当然这个测试代码是不可能通过的),然后根据测试代码来编写正式的代码,编写的正是代码要让一步步的让测试代码通过。如果在Android开发中也能使用测试驱动开发,将会大大加快我们的开发速度。可是我们都知道Android的单元测试实在令人头疼,他的每一个测试都要求的真机或者模拟器上运行,这将会大大拖慢我们的测试速度。
robolectric是一个Android的单元测试框架,这个框架的迷人在于,他能让你的Android代码运行在jvm(不是Android的虚拟机)上,这就意味着你在做单元测试的时候,不必要将你的apk安装到机器上运行了,这将会大大较少我们的测试时间。(Wouldn't it be nice to run your Android tests directly from inside your IDE?)
robolectric官网
在搭建robolectric个过程中我遇到了很多困难,并且网上的解决方案也比较上,所以不得不自己摸索,今天在这里记录一下robolectric环境的搭建
1.开发环境android-studio
2.所需jar包,下载地址
3.导入jar包之后,需要修改一下项目的配置:在Android studio的左下角有一个build variants,点开之后将test artifact改为Unit tests
4.编写测试代码:
- @RunWith(RobolectricGradleTestRunner.class)
- @Config(constants = BuildConfig.class)
- public class MyTest {
- @Test
- public void testTest() {
- MainActivity mainActivity = Robolectric.setupActivity(MainActivity.class);
- TextView textView = (TextView) mainActivity.findViewById(R.id.text);
- assertEquals(textView.getText(), "Hello World!1");
- }
- }
这里注意测试类上面的注解
5.运行这个单元测试方法,***运行的时候可能会下载一些东西,等他下载完成之后,就会想平时的junit一样执行