首页 > 代码库 > 第三次作业
第三次作业
单元测试
单元测试是针对软件的最小模块进行正确性检验的测试工作。所谓最小模块,在OOP的范畴内,通常是指对象的方法。
单元测试是程序员的一项基本职责和基本技能,直接影响到程序员的工作效率和软件的质量,
也直接影响到团队的合作。试想以下的情形:
某程序员提交了一段未经测试的代码,另外一个程序员checkout出来后,使得本地的代码无法正常运行,花费了很长的时间才发现是这段未经测试的代码的问题:影响了其他程序员的工作。
某程序员的代码没有单元测试,过了一段时间发现程序运行异常,经过艰苦排查,发现是这段代码的问题,于是修复了漏洞;又过了一段时间,发现了另外一个bug,于是修复了这个新发现的bug;但是在修复这个bug的时候,导致了上次发现的bug重现(当时没有发现这个问题,因为一般只是对刚刚修复的bug作简单的测试):这是一个恶性循,一个bug的修复导致了另外一个bug的出现而不自觉。
单元测试的好处也是显而易见的:
提高了整个团队的工作效率。有质量的代码是对整个团队的贡献。
提高了程序员的责任心和代码的质量。通过单元测试,保证自己的代码是可靠的和完整的,这是对自己负责,也是对团队负责。
单元测试的内容
单元测试主要分为人工静态检查和动态(自动)执行跟踪检查。
人工静态检查
人工静态检查的主要目的是保证:
正确性,能够实现预期的功能。
清晰性,代码简明易懂,注释没有歧义。
规范性,代码的格式、命名等符合公司的编码规范和代码风格。
高效性,代码的执行效率尽量高。
以上的检查目标的优先级是从高到底的。
自动跟踪检查
自动跟踪检查是我们研究的重点。所谓自动跟踪检查,是指通过单元测试工具,编写单元测试的类和方法。当执行测试类和方法时,自动对设定的输入条件进行计算,并给出测试的结果。
通过自动跟踪测试,我们能够将发现的每个bug或者能够想到的未来可能的bug写进测试类和方法中。这样只要运行测试类,就能够有效的发现bug是否仍然存在,或者已经修复的bug是否又“死灰复燃”。
自动跟踪检查方式的单元测试是XP核心理念之一。单元测试和每日构建技术的结合,能够保证整个开发过程平滑顺利的推进。
在Eclipse中使用JUnit4进行单元测试
第一步:
打开eclipse.exe,创建一个名为“123”的工项目,创建一个名为”UnitTest”的类。
public class unitTest {public static void main(String[] args) {int sum=0;int a=2;for (int i = 0; i < 50; i++) {sum+=a;a+=2;}System.out.println(sum);}}
第二步:
将JUnit4单元测试包引入这个项目:在该项目“123”上点右键,点“属性”(Properties),在弹出的属性窗口中,首先在左边选择“Java 构建路径”(Java Build Path),然后到右上选择"库(L)"(Libraries)标签,之后在最右边点击“添加库(A)”(Add Libraries)按钮,点击完成,JUnit4软件包就被包含进我们这个项目了。如下图所示:
第三步:
生成JUnit测试框架:在Eclipse的包资源管理器(Package Explorer)中用右键点击该类”UnitTest“弹出菜单,选择 新建 →JUnit测试用例 (New a JUnit Test Case),在弹出的对话框中,进行相应的选择。如下图所示:
完整的测试代码如下:
import static org.junit.Assert.*;import org.junit.Test;public class unitTestTest { @Test public void testMain() { int sum=0; int a=2; for (int i = 0; i < 50; i++) { sum+=a; a+=2; } System.out.println(sum); } }
测试结果如下:
测试成功,没有出现错误。
第三次作业