如何搭建robolectric環境
最近在學習測試驅動開發(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一樣執行