码迷,mamicode.com
首页 > 其他好文 > 详细

Junit的使用

时间:2016-12-05 22:34:13      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:spin   pdb   技术分享   pyw   odi   vsp   null   mdk   lap   

  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-b
15     }
16 
17     // 乘法
18     public int multiply(int a, int b)
19     {
20         try
21         {
22             Thread.sleep(300);//用于性能测试
23         }
24         catch (InterruptedException e)
25         {
26             // TODO Auto-generated catch block
27             e.printStackTrace();
28         }
29         return a * b;
30     }
31 
32     // 除法
33     public int divide(int a, int b) throws ArithmeticException
34     {
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——JUnit Test 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     @Before
13     public void setUp() throws Exception
14     {
15         cal = new Calculator();
16     }
17 
18     @SuppressWarnings("deprecation")
19     @Test
20     public void testAdd()
21     {
22         int rel = cal.add(10, 5);//调用函数计算的值
23         assertEquals("加法有问题", 15, rel);//传入计算的值,自己期望的值,出错信息
24     }
25 
26     @Test
27     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

 

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

技术分享























 

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

Junit的使用

标签:spin   pdb   技术分享   pyw   odi   vsp   null   mdk   lap   

原文地址:http://www.cnblogs.com/yangtze-yufei/p/6135559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!