AndroidStudio自带的单元测试功能是不需要修改gradle或者AndroidManifest.xml文件的。直接编写测试用例即可。
由AndroidStudio创建的全新工程在src目录下会包含三个目录:
- androidTest.Java.[包名]
main.java.[包名]
test.java.[包名]
- mian目录下为项目代码,androidTest目录下为编写Android测试用例使用,test目录下未编写Java测试用例使用。
gradle文件
- 增加
testCompile 'junit:junit:4.12'
用于Java编写执行Java测试用例。
编写Java测试用例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
测试用例的执行才是最关键的点
打开测试用例类,即上面的ExampleUnitTest
在AndroidStudio的界面做侧边栏下部,有两个工具栏(Build Variants 和 Favorites)
点击 Build Variants,Test Artifact 选项框选择Unit Tests(同理跑Android测试用例选择Android Instrumentation Tests)找不到 Test Artifact的参考:Android Studio 的build variants 找不到 test artifact问题
在AndroidStudio的界面做侧边栏上部有一个structure工具标签,(如果找不到,可以通过 工具栏–View–Tool Windows–Structure 打开此工具标签),打开此标签就可以看到此测试用例类的所有方法
鼠标选中要测的方法,右键–Run [方法名],即可进行Java用例测试。
编写Android测试用例
我在androidTest.java.[包名]文件夹中添加了一个类TestAndroidClass,该类派生自InstrumentationTestCase,并写了一个方法,完整代码如下:
public class TestAndroidClass extends InstrumentationTestCase {
@Test
public void test() throws Exception{
assertEquals(2, 2);
}
}
测试用例执行方法同Java测试用例,但是 Build Variants 的 Test Artifact 选项框一定要更改为 Android Instrumentation Tests。
注意事项:在android studio中,所有的测试代码必须以test-作为前缀,不然android studio无法识别它为测试代码。(以test为前缀的方法是高亮的,非test的前缀则不是,通过这一点也可以证明)
原文参考:https://developer.android.com/training/testing/start/index.html