最近在学习Test-DrivenDevelopment。测试驱动是一种极限编程方式。建议在真正写代码之前先按照需求写测试代码(当然这个测试代码是不可能通过的),然后根据测试代码写正式代码。写代码是为了让测试代码一步步通过。如果在Android开发中也能使用测试驱动开发,那将大大加快我们的开发速度。但是我们都知道Android的单元测试真的很让人头疼,而且他的每一个测试都需要在真机或者模拟器上运行,这样会大大拖慢我们的测试速度。robolectric是一个Android单元测试框架。这个框架的魅力在于它可以让你的Android代码运行在jvm(而不是Android虚拟机)上,也就是说你在做单元测试的时候,不用在机器上安装的apk运行,这会大大减少我们的测试时间。(直接从你的IDE里面运行你的Android测试不是很好吗?)我在robolectric官网搭建robolectric的过程中遇到了很多困难,网上的解决方案都比较好,所以我必须自己找出来。这里记录一下robolectric环境的搭建1.开发环境android-studio 2.需要的jar包,下载地址3.导入jar包后,需要修改工程的配置:有一个Androidstudio左下角buildvariants,点击后把测试神器改成Unittests 4。编写测试代码: @RunWith(RobolectricGradleTestRunner.class)@Config(constants=BuildConfig.class)publicclassMyTest{@TestpublicvoidtestTest(){MainActivitymainActivity=Robolectric.setupActivity(MainActivity.class);TextViewtextView=(TextView)mainActivity.findViewById(R.id.text);assertEquals(textView.getText(),"HelloWorld!1");}}这里注意test上面的注解class5.Run这个单元测试方法在***运行的时候可能会下载一些东西,下载完之后就和平时的junit一样执行了
