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

JUnit 4 单元测试

时间:2015-04-30 01:00:13      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

Individual Project

          ——JUnit 4 单元测试

 


 

  学习到JUnit单元测试,我拿来测试之前写过的一个计算器(两个依存类:Calc.java CalcFunction.java)。代码已放到github中。

贴出部分代码:

技术分享
 1 public class Calc extends javax.swing.JFrame{
 2 
 3         public Calc() {
 4             initComponents();
 5         }
 6 
 7         private void initComponents() {
 8             java.awt.GridBagConstraints gridBagConstraints;
 9 
10             setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
11             setTitle("\u8ba1\u7b97\u5668");
12             setBounds(new java.awt.Rectangle(500, 50, 0, 0));
13             setResizable(false);
14 
15                         ···//界面布局
16 
17                 }
18                 //主要监听
19         ActionListener listenerEquals = new ActionListener() {
20             public void actionPerformed(ActionEvent e) {
21                 formulaStand.setText(edit + "=");
22                 hasPoint = false;
23                 String result;
24                 try {
25                     result = CalcFunction.Evaluate(edit+"=");
26                 } catch (Exception e1) {
27                     result = "syntax error";
28                 }
29                 if (Double.parseDouble(result)%1 == 0) {
30                     editStand.setText(String.valueOf((int)Double.parseDouble((result))));
31                 }else{
32                     editStand.setText(String.valueOf((float)Double.parseDouble((result))));
33                 }
34                 edit = "0";
35             }
36         }; 
37 }
Calc.java

 用来测试的类

技术分享CalcFunction.java

 

  下面进行单元测试

首先要在该工程下导入JUnit 具体做法:Build Path -> Config Build Path ... -> Add Libraries ... 选中JUnit Next-> 选择JUnit 4 Finished 

技术分享添加完成

创建测试用例  

 new -> Java Test Case  Name:CalcFunctionTest Next-> 选择要测试的方法

自动生成一个测试类CalcFunctionTest,里面包含一些空的测试用例,@Test 注解的。只需要将这些测试用例稍作修改即可使用。完整的CalcFunctionTest代码如下:

技术分享
 1 package com.school.indivodial;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import org.junit.Before;
 6 import org.junit.Test;
 7 
 8 /**
 9  * 
10  * @author lendoon
11  *CalcFunction类是Calc类的功能类,
12  *Calc的UI输入中缀表达式调用CalcFunction的静态Evaluate方法计算返回结果
13  */
14 public class CalcFunctionTest {
15     
16     @Test
17     public void testEvaluate_basic() throws Exception {
18         Double expectedAnswer = Double.valueOf("90");
19         Double actualAnswer = Double.valueOf(CalcFunction.Evaluate("100-(22+6×3)÷4="));
20         assertEquals(expectedAnswer, actualAnswer);
21     }
22 
23     @Test
24     public void testEvaluate_pow() throws Exception{
25         Double expectedAnswer = Double.valueOf("1024");
26         Double actualAnswer = Double.valueOf(CalcFunction.Evaluate("2^10="));
27         assertEquals(expectedAnswer, actualAnswer);
28     }
29     
30     @Test
31     public void testEvaluate_sqrt() throws Exception{
32         Double expectedAnswer = Double.valueOf("8");
33         Double actualAnswer = Double.valueOf(CalcFunction.Evaluate("√64="));
34         assertEquals(expectedAnswer, actualAnswer);
35     }
36     
37     @Test
38     public void testEvaluate_cos() throws Exception{
39         Double expectedAnswer = Double.valueOf("1");
40         Double actualAnswer = Double.valueOf(CalcFunction.Evaluate("COS(0)="));
41         assertEquals(expectedAnswer, actualAnswer);
42     }
43 }
CalcFunctionTest.java

Run As -> JUnit Test,结果如图:

技术分享

 

 测试显示绿色的对号是通过的,显示蓝色叉号的,表示没通过failure。如图中的testEvaluate_cos测试方法。

 

运行失败,进度条会变成红褐色的,失败有两种情况:

处理结果与预期的有偏差(failure) 和  处理结果时,则直接抛出了异常——测试错误(error)

如图:测试失败的两种情况 技术分享

 

 全部测试成功时,进度条是绿色的:

技术分享

 

 JUnit 最佳实践测试任何可能的错误。单元测试不是用来证明您是对的,而是为了证明您没有错。

 

 

 

JUnit 4 单元测试

标签:

原文地址:http://www.cnblogs.com/lendoon/p/4467846.html

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