How to build the robolectric environment

How to build the robolectric environment

[[153333]]

I've been learning test-driven development recently. Test-driven development is a method of extreme programming. It advocates writing test code according to requirements before writing real code (of course, this test code is impossible to pass), and then writing formal code based on the test code. The code written is to make the test code pass step by step. If test-driven development can also be used in Android development, it will greatly speed up our development. But we all know that Android's unit testing is really a headache. Each of its tests requires running on a real device or simulator, which will greatly slow down our testing speed.

Robolectric is an Android unit testing framework. The charm of this framework is that it allows your Android code to run on the jvm (not the Android virtual machine), which means that when you do unit testing, you don't need to install your apk on the machine to run it, which will greatly reduce our testing time. (Wouldn't it be nice to run your Android tests directly from inside your IDE?)

robolectric official website

I encountered many difficulties in the process of building robolectric, and the solutions on the Internet were relatively limited, so I had to explore it myself. Today I will record the construction of the robolectric environment here.

1. Development environment android-studio

2. Required jar package, download address

3. After importing the jar package, you need to modify the project configuration: There is a build variant in the lower left corner of Android studio. Click it and change the test artifact to Unit tests.

4. Write test code:

  1. @RunWith (RobolectricGradleTestRunner. class )
  2. @Config (constants = BuildConfig. class )
  3. public   class MyTest {
  4. @Test  
  5. public   void testTest() {
  6. MainActivity mainActivity = Robolectric.setupActivity(MainActivity. class );
  7. TextView textView = (TextView) mainActivity.findViewById(R.id.text);
  8. assertEquals(textView.getText(), "Hello World!1" );
  9. }
  10. }

Note the annotations on the test class here

5. Run this unit test method. When it runs, it may download some things. After it finishes downloading, it will be executed like a normal junit.

<<:  Why I don't like working at a mainstream tech company

>>:  Which Google products have more than 1 billion users?

Recommend

How to write copy? I have a personal reference list for you.

If you search online for " copywriting skill...

Marketing promotion program skills and planning methodology

I have heard many of my friends and colleagues ta...

Mobile and PC management: a difficult but unstoppable path to merger

[[124757]] Obviously, we only jump into a trend w...

What is Chaoshan? Fresh and lively!

This is a place your tongue knows better than you...

What is Fuchsia, the successor to Android?

There is no need to say much about the success of...

How to transform a brand from "traffic" to "retention"

01 This article is full of high energy and reveals...

How to do search engine bidding promotion?

Internet website building and marketing has been ...