Android移动应用测试实战 4.1-单元测试junit基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
3
构造测试驱动器
4
构造测试驱动器
三种方法构造测试驱动器: 调用Main方法 嵌入静态测试方法 实现独立测试类
5
调用main方法
Public class SignalLamp{ //存储SignalLamp实例的状态值 private String _state; // SignalLamp类的构造方法 public SignalLamp(String state){…} //改变SignalLamp实例的状态 public void setState(String state){…} //获取SignalLamp实例的状态 public String getState(){…} //改变其它SignalLamp实例的状态 public void changeState(SignalLamp lamp){…}
//创建testAllSuite测试方法,该方法可以被别的独立可执行测试程序加裁 public static void testAllSuite( ) {
//所有测试用例 } }
7
实现独立测试类
Public class SignalLampTestCase extends junit.framework.TestCase{
//测试setState()方法的测试用例 public void testSetState(){…} //测试getState()方法的测试用例 public void testGetState(){…} //测试changeState方法的测试用例 public void testChangeState(){…}
TestSuite
run() addTest()
junit.textui.TestRunner
junit.swingui.TestRunner
11
JUnit测试过程
junit
TestCase TestRunner
1..* exercise
Foo
1..*
run
FooTest
test1 test2

12
JUnit 测试框架
junit.framework
Assert
assertTrue() assertEquals() ...
<< interface >>
Test
run()
*
Composite模式
TestResult
《interface》 TestListener
TestCase
fName
setUp() runTest() tearDown() run()
9
JUnit优点
可以使测试代码与产品代码分开; 针对某一个类的测试代码通过较少的改动便可以应
用于另一个类的测试; 易于集成到测试人员的构建过程中,Junit和Ant的
结合可以实施增量开发; JUnit是公开源代码的,可以进行二次开发;
例子SampleCalculator.java
10
//调用main方法,执行测试驱动程序 public static main(String[] args){ …} }
6
嵌入静态测试方法
Public class SignalLamp{ //存储SignalLamp实例的状态值 private String _state; // SignalLamp类的构造方法 public SignalLamp(String state){…} //改变SignalLamp实例的状态 public void setState(String state){…} //获取SignalLamp实例的状态 public String getState(){…} //改变其它SignalLamp实例的状态 public void changeState(SignalLamp lamp){…}
JUnit--单元测试工具
1
JUnit简介
Java 社区中知名度最高的开源单元测试工具。它诞 生于 1997 年,由 Erich Gamma 和 Kent Beck 共同开发完成。 其中 Erich Gamma 是经典著作《设计模式:可复用面向对 象软件的基础》一书的作者之一,并在 Eclipse 中有很大 的贡献;Kent Beck 则是一位极限编程(XP)方面的专家 和先驱。 支持语言:Smalltalk, Java, C++, Perl, Python, etc. 开发工具支持:eclipse,JBuilder, VisualAge, etc.
2
例子—类代码
Public class SignalLamp{ //存储SignalLamp实例的状态值 private String _state; // SignalLamp类的构造方法 public SignalLamp(String state){…} //改变SignalLamp实例的状态 public void setState(String state){…} //获取SignalLamp实例的状态 public String getState(){…} //改变其它SignalLamp实例的状态 public void changeState(SignalLamp lamp){…}
//运行所有测试用例 public void runAllTestCase(){…} //执行所有测试驱动程序 public static void main(String[] args){…} }
8
三种测试驱动程序比较
设计方法
优点
缺点
调用main 方法
嵌入静态 测试方法
实现独立 测试类
ቤተ መጻሕፍቲ ባይዱ
所见即所得,快速得知 测试后结果
JUnit3框架规定
1、编写的所有测试类,必须继承自 junit.framework.TestCase类;
2、里面的测试方法,命名应该以test开头,必须是public void 而且不能有参数;
测试代码调用方便,被 测试类无需实例化就可 以进行测试
测试代码可复用 测试用例独立于被测试 类,利于测试代码维护 经过改进,可一次执行 多个测试用例
不利于后期测试代码维护 不利于测试代码的利用 交付后程序必须逐个删除测试代码 不利于后期测试代码的维护 不利于测试代码的复用 交付后的程序必须逐个删除测试代码 需要密切关注被测试类的变化
相关文档
最新文档