这周的任务是熟悉和应用JUnit+Ant+IC,我想有经验的程序员都清楚,有时环境的配置远比直接编程要痛苦。今天的主要精力花在研究JUnit和Ant。这当中遇到了很多的问题,也暴露了自己对Eclipse了解不足的缺点。简单梳理,记录一下
一本不错电子资料:http://download.csdn.net/source/2624478
JUnit简介
如果您要对撰写的程序进行测试,该如何进行呢?传统的测试方式通常依赖于人工对输出结果的判断,缺少效率且通常难以组织,且针对单一程序通常要设计专门的测试程序,如果您是在撰写Java,您可以使用JUnit来为您提供有效率的测试。
JUnit是一个开放原始码的Java测试框架(testing framwork),它用来撰写与执行重复性的测试,它是用于单元测试框架的xUnit架构的实例。
JUnit包括以下的特性:
1. 对预期结果的断言
2. 对相同共享数据的测试装备
3. 易于组织与执行测试的测试套件
4. 图型与文字接口的测试器
JUnit最初是由Erich Gamma与Kent Beck撰写
在Eclipse中JUnit应用
一般使用JUnit是需要jar包的,而MyEclipse中是自带
图解 :http://zph999.blog.hexun.com/15108859_d.html
举例
使用Assert类别中所提供的assertXXX()方法可以让您进行各种断言,如果断言失败,则可能传回AssertionFailedError或ComparisonFailure对象,您可以利用try....catch区块收集并显示这些对象所夹带的讯息,然后重新返回测试,然而事实上您不用自行设计,JUnit提供TestCase类别,您可以继承这个类别进行测试案例的撰写,并使用它的run()方法进行测试,TestCase对象会自行帮您收集测试失败时的相关讯息,之后您只要取得TestResult对象,就可以显示相关的讯息。
被测程序
public class Student { private String _number; private String _name; private int _score; public Student() { _number = null; _name = null; _score = 0; } public Student(String num, String name, int score) { _number = num; _name = name; _score = score; } public String getNumber() { return _number; } public String getName() { return _name; } public int getScore() { return _score; } public void setNumber(String num) { _number = num; } public void setName(String name) { _name = name; } public void setScore(int score) { _score = score; } }
测试程序
import junit.framework.*; public class TestIt extends TestCase { public TestIt(String name) { super(name); } public void testGetMethod() { Student student = new Student("B83503124", "Justin", 100); assertEquals("B83503124", student.getNumber()); assertEquals("Justin", student.getName()); assertEquals(100, student.getScore()); } public void testSetMethod() { Student student = new Student(); student.setNumber("B83503124"); student.setName("Justin"); student.setScore(100); assertEquals("B83503124", student.getNumber()); assertEquals("Justin", student.getName()); assertEquals(10, student.getScore()); } }
运行结果:
参考资料:
http://zph999.blog.hexun.com/15108859_d.html
junit和ant
http://www.ibm.com/developerworks/cn/java/j-ant/