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;

}

}

5.实验心得

通过本次实验,我学会了利用Junit进行单元测试,理解了单元测试的任务和这类测试工具的实现原理,并且理解了断言的基本概念和断言测试方法。

附录: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;

}

}

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: