测试基础知识和Eclemma使用总结

测试基础知识和Eclemma使用总结
1.1 概念
对软件基本组成单元进行的测试,单元具有明确的功能,与其它单元有明确的接口,不一定是一个具体的方法。但是,一般情况下,一个单元测试是用于判断某个特定条件(或者场景)下某个特定方法的行为。
1.2 特点
 属于白盒测试,依据单元的具体实现、代码逻辑结构、数据流向来设计测试用例。
1.3 单元测试覆盖率
单元测试是白盒测试,所以判断覆盖率的依据是逻辑覆盖,就是语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、路径覆盖。
2 Junit测试框架
2.1 JUnit简介
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),用于帮助Java开发人员编写单元测试。
2.1.1 Junit的核心类和接口
1. Test接口,框架的主接口,有两个方法:
public int countTestCases() 返回所有测试用例的个数。
public void run(TestResult arg0) 运行一个测试,并且收集运行结果到TestResult。
2. TestCase类,实现了Test接口,我们所有的测试方法都要在这个类的子类中定义。
3. TestSuite类,实现了Test接口,一个TestSuite可以包含一系列的TestCase。把testCase组装入TestSuite有几种方式:
 通过将TestCase的Class参数传入TestSuite的构造函数,TestSuite会自动收集TestCase中所有的public的没有参数的testxxx方法加入TestSuite中。
 构造空的TestSuite后通过void addTest(Test test)方法添加测试。
 构造空的TestSuite后通过void addTestSuite(Class testClass) 方法添加测试集。
 附加说明:TestCase和TestSuite的设计采用了Composite模式。这样JUnit可以一次运行一个测试用例,也可以一次运行多个测试用例。使用接口是一致的,TestRunner只关心Test接口,而对运行的是单个的TestCase还是同时运行多个TestCase并不在意。
4. TestResult类,通过run方法收集测试结果。
5. TestRunner类,启动测试的主类,我们可以通过直接调用它运行测试用例,IDE和其他一些工具一般也通过这个接口集成JUnit。
6. Assert类,TestCase继承自该类,我们的测试方法通过这些断言判断程序功能是否通过测试。
7. TestListener接口
2.1.2 常用方法介绍
断言方法:
 assertEquals(expect,actual)参数是期望值和真实值,assertEquals有多个重载方法,只要参数类型必须相同。
 assertSame(期望对象,实际对象),检查具有相同内存地址的两个对象是否相等,利用内存地址进行判断。
 assertTrue(布尔条件)和assertFalse(),检查布尔条件是否为真。
 assertNull(对象1,对象2)和assertNotNull(),检查一个对象是否为空。
2.2 使用规则
1. 类名规则:需测试的类名+Test,例如ConfigManagerTest类用于测试ConfigManager类的方法。
2. 方法规则:test+方法名字,例如testGetDetailInfo()。
3. 必须继承TestCase类。
4. setUp方法和tearDown方法:setUp方法在每个测试方法调用前调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。即如果有10个测试方法,则setup和tearDown分别会调用10次。
2.3 使用步骤
2.3.1 写测试用例步骤原则
1. 编写测试用例类,使其继承TestCase类。
2. 编写测试方法,并用test+方法名命名。方法内的逻辑如下:
1) 获取准备的测试数据。
2) 调用被测试对象的方法。
3) 编写断言,验证结果。
3. 如果测试方法有公用的变量等需要初始化和销毁,则可以使用s

[1] [2] [3] [4] [5] [6] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有