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

Jike App - Competitive Product Analysis Report

One sentence introduction: My version: A minimali...

Cost Director Training Course - Cost Management from Beginner to Mastery

Cost Director Training Course - Cost Management f...

iOS 14's most controversial feature, should it be removed?

The App Library feature is a bright new feature o...

Super practical event planning and promotion methodology!

Event planning is one of the basic operational ca...

Audi employees are afraid of layoffs

Recently, according to foreign media reports, Aud...

How to promote an H5 event with 10W+PV?

——How to operate an event with little money and l...

The largest pearl in the world is as heavy as a husky

The name of Tridacna is quite obscure, and is gen...

How to place a high-quality advertisement? Advertising tips!

What is a good advertisement? Everyone has a diff...