JUnit学习摘要+入门实例

  看《重构-改善既有代码的设计》这本书的时候,里面提到测试环境对于重构的重要性,想到之前在编写代码的时候都是通过System.out和alert来做测试,非常麻烦,而且不够正规,对于即将步入工作的人来说,一个正规的写代码习惯和测试习惯是非常重要的,因此我觉得好好学学如何使用JUnit。

  在JUnit和单元测试入门简介一文中提到“JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法”。

  这又让我想起自己前段时间在读的《研磨设计模式》这本书,读了前面的九章,写了一些博客,但是还没有整理,不过大多也忘了。可能自己没有真正理解吧。其实,一时的理解,如果没有在实际项目中应用,还是很容易遗忘的。希望自己能在重构项目的时候多用一些设计模式上的内容。《研磨设计模式》这本书中的第15章讲的就是组合模式(Composite),有空了就去看一看。

  在使用eclipse进行junit的时候,添加junit包才发现有junit3和junit4两个版本,这两者的区别可以参考JUnit测试框架之JUnit3和JUnit4使用区别的总结。

2.入门实例 步骤1:创建待测试类

首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:

package xw.calculator;
public class Calculator {

private static int result; // 静态变量,用于存储运行结果
public void add(int n) {
result = result + n;
}
public void substract(int n) {
result = result - 1; // Bug: 正确的应该是 result =result-n
}

public void multiply(int n) {
} // 此方法尚未写好

public void divide(int n) {
result = result / n;
}

public void square(int n) {
result = n * n;
}

public void squareRoot(int n) {
for (;;)
; // Bug : 死循环
}

public void clear() { // 将结果清零
result = 0;
}

public int getResult() {
return result;
}
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgxgwx.html