3.8、junit的扩展应用
以下罗列了些junit的扩展应用:
junit + httpunit=web功能测试工具
junit + hansel =代码覆盖测试工具
junit + abbot =界面自动回放测试工具
junit + dbunit =数据库测试工具
junit + junitperf=性能测试工具
3.9、一些使用junit经验
不要用testcase的构造函数初始化,而要用setup()和teardown()方法。
不要依赖或假定测试运行的顺序,因为junit利用vector保存测试方法。所以不同的平台会按不同的顺序从vector中取出测试方法。
避免编写有副作用的testcase。例如:如果随后的测试依赖于某些特定的交易数据,不要提交交易数据。简单的回滚可以了。
当继承一个测试类时,记得调用父类的setup()和teardown()方法。
将测试代码和工作代码放在一起,一边同步编译和更新。
测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。
确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。
如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的locale进行测试。
尽可能地利用junit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。
测试要尽可能地小,执行速度快。
参考资料与附件
1. http:// www.junit.org junit官方网站
2. http://bbs.51cmm.com 的测试论坛
3. http://www.uml.org.cn 的软件测试专栏
4. 单元测试 《程序员》 2002年7期
5. junit设计模式分析 《程序员》2003年6期
6. 《软件测试和junit实践》
7. 附件triangle.java 一个要测试的类
8. 附件exampletest.java 一个测试用例类
triangle.java
/**
* this is triangle class
* @author liujun
*/
public class triangle
{
//定义三角形的三边
protected long lbordera = 0;
protected long lborderb = 0;
protected long lborderc = 0;
//构造函数
public triangle(long lbordera,long lborderb,long lborderc)
{
this.lbordera = lbordera;
this.lborderb = lborderb;
this.lborderc = lborderc;
}
/**
* 判断是否是三角形
* 是返回ture;不是返回false
*/
public boolean istriangle(triangle triangle)
{
boolean istrue = false;