1.实验名称——JUnit单元测试
2.实验目的
(1)利用Junit进行单元测试,理解单元测试的任务、同时理解这类测试工具的实现原理;
(2)理解断言的基本概念和断言测试方法;
3.实验内容
题目1:完成课件中Score_List的单元测试。
题目2:这是一个简单的计算器类——Computer,能够实现两个整数的加、减、乘、除运算(具体代码见附录C),请利用Junit进行单元测试。
4.实验过程
题目1:完成课件中Score_List的单元测试:从分数表中查找最大值。
Score_List.java
package Score;
public class Score_List {
public static int maximum(int[] list) {
int index;
int max = Integer.MIN_VALUE;
if(list.length == 0)
{
throw new RuntimeException("空表");
}
for(index = 0; index<=list.length-1; index++)
{
if(list[index]>max) max = list[index];
}
return max;
}
}
Score_ListTest.java
package Score;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class Score_ListTest extends TestCase
{
public Score_ListTest(String testName)
{
super(testName);
}
//测试表中有3个分数
public void testOne()
{
int[] list = new int[3];
list[0] = 7;
list[1] = 9;
list[2] = 8;
int expResult = 9;
int result = Score_List.maximum(list);
assertEquals(expResult, result);
}
//测试表中有1个分数
public void testTwo()
{
int[] list = new int[1];
list[0] = 9;
int expResult = 9;
int result = Score_List.maximum(list);
assertEquals(expResult, result);
}
//测试表为空的情况
public void testThree()
{
try{
Score_List.maximum(new int[] {});
fail("这里应抛出而没有抛出异常");
}
catch(RuntimeException e){
assertTrue(true);
}
}
public static TestSuite suite()
{
TestSuite suite=new TestSuite();
suite.addTest(new Score_ListTest("testOne"));
suite.addTest(new Score_ListTest("testTwo"));
suite.addTest(new Score_ListTest("testThree"));
return suite;
}
}
运行截图:
题目2:这是一个简单的计算器类——Computer,能够实现两个整数的加、减、乘、除运算(具体代码见附录C),请利用Junit进行单元测试。
Computer.java
package test;
public class Computer {
private int a;
private int b;
public Computer(int x,int y)
{
a=x;
b=y;
}
public int add(){return a+b;}
public int minus(){return a-b;}
public int multiply(){return a*b;}
public int divide()
{
if(b!=0) return a/b;
else return 0;
}
}
ComputerTest.java
package test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class ComputerTest extends TestCase
{
Computer a;
public ComputerTest(String testName)
{
super(testName);
}
protected void setup()
{
a=new Computer(1,2);
}
public void testAdd()
{
setup();
int expResult = 3;
int result = a.add();
assertEquals(expResult, result);
}
public void testMinus()
{
setup();
int expResult = -1;
int result = a.minus();
assertEquals(expResult, result);
}
public void testMultiply()
{
setup();
int expResult = 2;
int result = a.multiply();
assertEquals(expResult, result);
}
public void testDivide()
{
setup();
int expResult = 0;
int result = a.divide();
assertEquals(expResult, result);
}
public static TestSuite suite()
{
TestSuite suite=new TestSuite();
suite.addTest(new ComputerTest("testAdd"));
suite.addTest(new ComputerTest("testMinus"));
suite.addTest(new ComputerTest("testMultiply"));
suite.addTest(new ComputerTest("testDivide"));
return suite;
}
}
文章来源:https://www.toymoban.com/news/detail-422268.html
5.实验心得
通过本次实验,我学会了利用Junit进行单元测试,理解了单元测试的任务和这类测试工具的实现原理,并且理解了断言的基本概念和断言测试方法。文章来源地址https://www.toymoban.com/news/detail-422268.html
附录:Computer类源代码
public class Computer
{
private int a;
private int b;
public Computer(int x,int y)
{ a=x;
b=y;
}
public int add()
{
return a+b;
}
public int minus()
{
return a-b;
}
public int multiply()
{
return a*b;
}
public int divide()
{
if(b!=0)
return a/b;
else
return 0;
}
}
到了这里,关于软件质量保证与测试技术实验报告(四)——JUnit单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!