说点啥
今天看了片文章:《程序员必看的六本书》
里面有个《单元测试的艺术》 , 于是觉得有必要尝试经常使用下。 书还没买,不过先研究了下在AS中如何使用Junit
如果你使用的是Eclipse,那么看这篇慕课网的文章吧: JUnit—Java单元测试必备工具
相关链接
AS中没用过,只有百度了。 众说纷纭有木有。
后来看到了这篇文章 使用Android Studio进行单元测试,是篇译文,原文是:Unit Testing With Android Stutio
一开始看译文没看懂,只能说自己笨吧。 其实按照他的思路一步一步走就可以了。写这篇文章只是Mark一下。
基本使用
言归正传,我来说说重点吧:(最好走一遍上面的那文章再来看我的总结,每一小点在后面有配图)
- 给自己的测试文件专门安个家(创建个特定的package,方便以后统一删除)
- 在这个家里,创建一个我们的测试文件,注意要继承 InstrumentationTestCase 类
- 使用Edit Configurations进行Android Test的设置
- 运行
第一点-注解
我理解的这个新包的作用,就是为了代码整洁,便于管理
第二点-注解
Calculate是我们待测试的文件,CalculateTest是我们创建的测试文件。右侧是测试文件的代码,很简单:
public class CalculateTest extends InstrumentationTestCase {
/**
* 除法测试
* 这里的函数名 test() ,其实名字可以自己取,只不过有要求,开头必须以test开头,例如:
* testDivide() <--> test()
* 大家可以自己试试
* @throws Exception
*/
public void test() throws Exception {
final int expected = 3; // 预计结果值
final int reality = new Calculate().divide(5,2); // 实际返回值
assertEquals(expected, reality); // 对比两个值
}
}
待测试的代码是:
public class Calculate {
public int divide(int a, int b) {
return a / b;
}
}
预计结果是我们觉得应该的返回值。 实际返回值是通过测试后的返回值。该测试运行后打印结果如下:
右上角的”进度条”是红色,说明出错了。如果你看到右上角是绿色的,you are right !
我们期待结果是3,而实际除法算出的是2 。
第三点-注解
配置这块,就看他的文章就好,说的很明白。
Target Device这里选第一个,就是弹出个框问你选什么手机来运行这个TestCase。默认是Emulator系统自带的模拟器,这个很慢啊。我们选了show chooser dialog后,就可以用Genymotion了。
这说明跑测试文件也是需要手机的
进阶
能不能测试网络请求呢? 可是我的网络请求有两个回调函数啊,怎么破?一个Success的,一个Error的。
后来一琢磨,你丫网络请求有啥可测的,而且返回值千变万化的。
那进阶里能有什么比较叼的内容呢?额,我也没想好。
其他
给明明推荐了两首歌:阿明的《青春万岁》、好妹妹乐队的《我也可以是流浪诗人》,她问我,这就是民谣吗?怎么感觉调调都一样呢 ~
border="0" width="330" height="86" src="http://music.163.com/outchain/player?type=2&id=29810328&auto=0&height=66"> border="0" width="330" height="86" src="http://music.163.com/outchain/player?type=2&id=33166563&auto=0&height=66">