首页 > 代码库 > Junit的使用

Junit的使用

<style></style>

  Junit是用于编写单元测试的框架。对于已经写好的函数,可以使用Junit生成单元测试代码。

  自己的环境是:Linux

  Java环境是:JDK1.7

  IDE:Eclipse Java EE IDE for Web Developers.Version: Mars.2 Release (4.5.2) Build id: 20160218-0600

使用步骤

1、新建项目,命名为JUnit_Test,编写了一个用于计算的类:Calcutor,代码中故意留下一些问题,便于测试。代码如下:

 

技术分享
 1 package com.test.unit; 2  3 public class Calculator 4 { 5     // 加法 6     public int add(int a, int b) 7     { 8         return a + b; 9     }10 11     // 减法12     public int substract(int a, int b)13     {14         return a + b; // Bug: 正确的应该是a-b15     }16 17     // 乘法18     public int multiply(int a, int b)19     {20         try21         {22             Thread.sleep(300);//用于性能测试23         }24         catch (InterruptedException e)25         {26             // TODO Auto-generated catch block27             e.printStackTrace();28         }29         return a * b;30     }31 32     // 除法33     public int divide(int a, int b) throws ArithmeticException34     {35         if (b == 0)36         {37             throw new ArithmeticException();38         }39         return a / b;40     }41 42     // 平方根43     public void squareRoot(int n)44     {45         for (;;)46             ; // Bug : 死循环47     }48 }
Calculator

 

2、引入Junit库。选中项目,右键——Build Path——Add Libraries,选择JUnit,引入的包如下:

技术分享








3、生成测试类。选中Calcutor.java,右键——New——JUnitTest Case

技术分享



















 

选择setUp,再下一步,选择要进行测试的方法,及生成了选择的函数的测试用例,再根据需要自己编写代码。

主要测试类型有三种:

  (1)常规的计算测试。调用函数计算值,输入自己期望的值,以及出错信息。如果调用函数计算的值与自己期望的值不相等,则抛出出错信息。

  (2)用于性能测试。要让一个方法,200毫秒里运行完,如果这个方法200毫秒不能运行完,那么这个方法就应该抛出异常。

  (3)异常测试。期待抛出异常,如果没有抛出异常,则报错。

测试代码如下:

 

技术分享
 1 package com.test.unit; 2  3 import static org.junit.Assert.*; 4  5 import org.junit.Before; 6 import org.junit.Test; 7  8 public class CalculatorTest 9 {10     Calculator cal;11 12     @Before13     public void setUp() throws Exception14     {15         cal = new Calculator();16     }17 18     @SuppressWarnings("deprecation")19     @Test20     public void testAdd()21     {22         int rel = cal.add(10, 5);//调用函数计算的值23         assertEquals("加法有问题", 15, rel);//传入计算的值,自己期望的值,出错信息24     }25 26     @Test27     public void testSubstract()28     {29         int rel = cal.substract(20, 5);30         assertEquals("减法有问题", 16, rel);31     }32 33     // 用于性能测试34     // 要让一个方法,200毫秒里运行完,如果这个方法200毫秒不能运行完,那么这个方法就应该抛出异常35     @Test(timeout = 200)36     public void testMultiply()37     {38         int rel = cal.multiply(2, 4);39         assertEquals("乘法有问题", 8, rel);40     }41 42     //异常测试43     @Test(expected = ArithmeticException.class)44     public void testDivide()45     {46         int rel = cal.divide(10, 0);47         assertEquals("除法有问题", 5, rel);48     }49 50 }
CalculatorTest

 

<style></style>

4、完成测试代码的编写后,包管理器中选中CalculatorTest,右键——Run as——JUnit Test,进行测试,测试结果如下:

技术分享























 

根据报错信息再修改自己的代码。

Junit的使用