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 do advertisers choose “KOL” to promote their products?

Today, the self-media industry is developing at a...

Keep product experience report, tell you the secret of user growth

1. Experience the environment Test model: iPhone6...

M8 camera vs 5s

As HTC's latest flagship product this year, th...

How to do SEO optimization for industry websites? How to rank first?

How to do SEO optimization for industry websites?...

Why do peaches have hair? What should I do if I am allergic to it?

I have three impressions of peaches. The first is...

How to improve SEM conversion rate?

Among SEM techniques, reducing conversion costs i...

Ningxia confirmed 1 imported plague case! Details announced

According to the Ningxia Health Commission websit...

iOS unit testing: translation - common ways to use OCMock

The API used in this article is the old version o...

Ronanxi's "Female Scientific Body Orgasm Course"

Course Contents: 00. Introduction to MBK Full Cour...

8 essential skills for a popular live broadcast room

Have you ever encountered such a situation? The l...