return new
junit.framework.JUnit4TestAdapter(AllTests.class); }
}
其中最重要的是suite方法,该方法通过junit.framework.JUnit4TestAdapter类使基于JUnit 4环境创建的AllTests类能够运行于JUnit 3命令行环境下。
四.实验小结 一、实体类
一般先新建一个对象,初始化构造方法对应参数对象各一个。 1、构造方法测试
测试构造之后对应参数的正确性,测试getter/setter的准确性。进行失败测试,测试构造函数、getter/setter方法异常的抛出情况 注意:1)准确性测试要考虑全面
2)失败测试一般包括传递null,empty参数,不合法参数,侦测异常的抛出
3 )如果有继承关系,使用反射来测试是否继承成功 二、帮助类
测试帮助类中的方法是否能返回预期的结果
三、关键的功能类(一般项目中最复杂的算法要在这个类中实现)
1、首先是必不可少的初始化功能类的对象,对构造方法进行准确性,失败的测试。方法同上
2、对复杂函数的测试:关键在于测试数据的选择,要让每一个分支都能跑到。一般包括准确性测试和侦测异常的失败测试
3、有时候使用mock object等比较复杂的测试方式,暂不涉及
实验名称:Junit单元测试实验报告
实验内容:利用Junit对实验程序Point2d.java进行单元测试
实验目的:掌握单元测试的方法,掌握在Eclipse里进行Junit测试的技术。
实验步骤和结果:
1、修改之前的Calculator的测试结果: (1)自动生成的CalculatorTest类 代码: package andycpp;
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; } }
(2)运行结果:
自动生存的测试类
完善测试类后的运行结果
2、修改和完善Calculator类:
package andycpp;
public class Calculator {
private static int result; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; }
public void substract(int n) {
result = result - n; //Bug: 正确的应该是 result =result-n }
public void multiply(int n) { result =result*n; }
public void divide(int n) { result = result / n; }
public void square(int n) { result = n * n; }
public void squareRoot(int n) {
result=(int)Math.sqrt(n); //Bug : 死循环 }
public void clear() { // 将结果清零 result = 0; }
public int getResult() { return result; } }
3、修改后的Calculator的测试用例: (1)加法:操作数:2,、3;结果:5 (2)减法:操作数:10、2;结果:8 (3)乘法:操作数:10、2;结果:20 (4)除法:操作数:8、2;结果:4 (5)平方:操作数:3;结果:9 (6)开方:操作数:4;结果:2
代码:
package andycpp;
import static org.junit.Assert.*; import org.junit.Before;
相关推荐: