Android Studio Unit Test

Unit Test in Android Studio

When you create Android application project, test and androidTest project are created automatically in Android Studio
We may add test codes to these projects.

test project

The difference between test and androidTest are test target

Test Description
test Non Android test. Only Logic, Java general API, not Android API
androidTest Android API related test. If you use Android SDK API in Test, we need to use this. Context, Activity etc…
or other APIs

gradle

To use Test library or other library for test, we need to add dependencies to build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile 'junit:junit:4.12'
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.+'
}

testCompile ‘junit:junit:4.12’ exists by default.
If you want to use JUnit4 in androidTest, please add androidTestCompile ‘junit:junit:4.12’, maybe no need

Unit Test

Preparation was done.
Let’s start Unit Test for logic

test

This is blank test for test project

public class FirstTest {
  @Before
  public void setUp() throws Exception {
  }
  
  @After
  public void tearDown() throws Exception {
  }

  @Test
  public void testFirst() {
     // Test Code
  }
}

This is just same as JUnit4 test.

androidTest

Next is Android Test. When you create project, androidTest folder is created by default.
This is Android Test. Android Test includes Activitiy and any tests with Android API.
Currently, Android Test is JUnit3, not JUnit4. If you want to use JUnit4 add following

dependencies {
  androidTestCompile 'junit:junit:4.12'
}

The name is androidTestCompile. So you can add test dependencies using androidTestCompile

public class AndroidFirstTest extends AndroidTestCase {

    public void testXxxxx() {
    }
}

Extend AndroidTestCase and testXxxxx method(start with test)
In AndroidTestCase class, you can get context using getContext();