Android Studio 1.4
工程建立好之后,切换项目到Project模式,mac下按『Command』+『1』可以看到新生成的代码目录结构。'app/src/main/java',这个目录下是放我们app的源代码;'app/src/test/java',这个目录下是放我们本地单元测试的源代码。
注意:如果工程建立好之后提示:『failed to resolve:junit:junit:4.12』,如下图1。这时需要修改我们工程的build.gradle打开左侧的Project侧边栏,找到我们的工程build.gradle,图2,修改红框里的两个'jcenter()'依赖库为:maven { url 'http://jcenter.bintray.com/' }maven { url 'http://repo1.maven.org/maven2/'}这两句话。结果如图三:
打开我们模块app的build.gradle,图1,添加两个依赖项:testCompile 'org.mockito:mockito-core:1.10.19'androidTestCompile 'org.hamcrest:hamcrest-library:1.1'结果如下图2
修改完成后,mac下按『Command』+『F9』,进行build。或者选择菜单栏里的『Build』--『Make Project』进行build。完成后,我们可以在android studio 下方的Event Log里看到整个过程执行的时间与结果。
打开'app/src/test/java/.../ExampleUnitTest.java'再顶部improt添加一个引用:import static org.hamcrest.core.IsEqual.equalTo;在ExampleUnitTest类中添加一个方法'multiply_isCorrect',添加如下内容:@Testpublic void multiply_isCorrect() throws Exception{ assertThat(4*4,equalTo(16));}使用@Test对方法进行注解,表示这个方式是需要测试的方法。assertThat是UnitTest的断言方法,第一个参数是我们执行的结果,第二个参数用hamcrest的equalTo来检测是否等于16。assertThat(4*4,equalTo(16));结合使用hamcrest,这种语法使得测试代码更容易阅读。
打开android studio 左边的『Build Variants』,将『Test Artifact』改为『Unit Tests』
在'SimpleUnitTest'类中的空白地方右击鼠标,选择『Run SimpleUnitTest』过一会就会得到结果,或者直接按快捷键:『control』+『option』+『R』选择SimpleUnitTest,同样会执行。
这次我们修改一下我们的方法:multiply_isCorrect,将4*4改为4*3,来测试一下:这次将鼠标在multiply_isCorrect方法体单击一下,使得光标停留在multiply_isCorrect方法里。这个时候在右击鼠标,选择『Run multiply_isCorrect()...』来直接执行测试方法multiply_isCorrect。或者直接按快捷键:『control』+『option』+『R』,选择multiply_isCorrect()来执行。可以看到,测试没有通过。预期的结果是16,但是实际计算的结果却是12。
进行这种单元测试的代码必须与Android没有任何依赖,或者只有简单的依赖。