第一行代码总结:13.5.2进行单元测试
来源:互联网 发布:局域网数据备份 编辑:程序博客网 时间:2024/06/10 20:28
13.5.2进行单元测试
单元测试:是指对软件中最小的功能模块进行测试,如果软件中的每一个单元都能通过测试,说明代码的健壮性就已经非常好了。
步骤:
1、首先在测试工程中新建一个类,继承自AndroidTestCase类,然后重写setUp()和tearDown()方法。
setUp()方法会在所有的测试用例执行之前调用,可以在这里进行一些初始化的操作。tearDown()方法会在所有的测试用例之后调用,可以在这里进行一些资源释放的操作。
如下所示,
public classActivityCollectorTest extends AndroidTestCase{
@Override
protected void setUp() throws Exception{
super.setUp();
}
//中间写测试用例
……
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
}
2、编写测试用例。只需要定义一个以test开头的方法,测试框架就会自动调用这个方法了。然后我们在方法中可以通过断言(assert)的形式来期望一个运行结果,再和实际的运行结果进行对比,这样一条测试用例就完成了。测试用例覆盖的功能越广泛,程序出现bug的概率就会越小。
如:
public void testAddActivity(){
//断言0和集合中activity的个数相等,即集合中有0个activity
assertEquals(0,ActivityCollector.activities.size());
//new出一个新的Activity实例
LoginActivity loginActivity = newActivity();
//将新的activity实例添加到集合中
ActivityCollector.addActivity(loginActivity);
//再次进行断言,认为集合中的activity的个数是1
assertEquals(1,ActivityCollector.activities.size());
}
3、运行测试用例。右击测试工程——>Run As——>Android JUnit Test。
运行结果:Runs:2/2 Errors:0 Failures:0
4、再编写一些特殊情况下的断言,看看程序是否还能正常工作。这次还是想集合中添加相同的activity。这时我们觉得ActivityCollector有能力过滤掉重复的数据,因此在断言的时候认为目前ActivityCollector中活动的个数仍然是1.
public void testAddActivity(){
//断言0和集合中activity的个数相等,即集合中有0个activity
assertEquals(0,ActivityCollector.activities.size());
//new出一个新的Activity实例
LoginActivity loginActivity = newActivity();
//将新的activity实例添加到集合中
ActivityCollector.addActivity(loginActivity);
//再次进行断言,认为集合中的activity的个数是1
assertEquals(1,ActivityCollector.activities.size());
//向集合中再次添加同一个对象
ActivityCollector.addActivity(loginActivity);
//断言集合中activity的个数不变,认为重复加入的activity会被过滤掉。
assertEquals(1,ActivityCollector.adtivites.size());
}
5、运行测试用例。
测试没有通过,结果是:Runs:2/2 Errors:0 Failures:1
从这个测试用例中我们发现,addActivity()方法中的代码原来是不够健壮的,它没有自动对重复的一样的对象进行过滤。所以,这个时候我们就应该对该代码进行优化了。在addActivity()方法中应该加入一个if判断。
之后,你可以不断地补充新的测试用例,让程序永远都可以跑通所有的测试用例,这样的程序才会更加健壮,出现bug的概率也会更小。
- 第一行代码总结:13.5.2进行单元测试
- 《第一行代码》读完总结
- 《第一行代码》扩展总结
- 《第一行代码》基础总结
- 《第一行代码2》
- 第一行代码总结:13.5编写测试用例
- 第一行代码总结:13.5.1创建测试工程
- 第一行代码总结:10网络:10.2.2使用HttpClient
- 第一行代码总结:9.3服务的基本用法——活动和服务进行通信
- 【Android】读《第一行代码》笔记总结
- 第一行代码:通知的使用总结
- 《第一行代码》学完总结
- 第一行代码 weather项目-自我总结
- 【未完成】Android第一行代码总结
- Android第一行代码学习笔记总结
- 【第一行代码】Android中UI总结
- 《第一行代码》中的简易新闻总结
- ListView 总结(学习《第一行代码》)
- android 让线程睡一段时间的操作代码
- logback 常用配置详解(序)logback 简介
- 第一行代码总结:13.5.1创建测试工程
- 2015.11.28
- Android百分比布局支持库——com.android.support:percent
- 第一行代码总结:13.5.2进行单元测试
- ToStringBuilder、EqualsBuilder、HashCodeBuilder等实例
- Redis 学习笔记5-持久化
- [Web前端]梳理-HTML5.1.input类型
- [Canvas绘图] 第02节 今日看“点"
- 朝花夕拾——初探Java虚拟机及其加载过程
- JS改变文字透明度
- 如何将solr5.3.1部署到Tomcat下
- 哈希表(线性探测再散列)