zoukankan      html  css  js  c++  java
  • JUnit单元测试

    什么是JUnit

            ①JUnit是用于编写可复用测试集的简单框架,是xUnit的一个子集。xUnit是一套基于测试驱动开发的测试框架,有PythonUnit、CppUnit、JUnit等。
            ②Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
            ③多数Java的开发环境都已经集成了JUnit作为单元测试的工具,比如Eclipse。

    为什么要使用测试工具

            ①测试框架可以帮助我们对编写的程序进行有目的地测试,帮助我们最大限度地避免代码中的bug,以保证系统的正确性和稳定性。
            ②很多人对自己写的代码,测试时就简单写main,然后sysout输出控制台观察结果。这样非常枯燥繁琐,不规范。缺点:测试方法不能一起运行,测试结果要程序猿自己观察才可以判断程序逻辑是否正确。
            ③JUnit的断言机制,可以直接将我们的预期结果和程序运行的结果进行一个比对,确保对结果的可预知性。

    简单例子:

    被测试类:

    package junit;
    /**
     * 加减乘除的简单计算类
     * @author qzkuan
     */
    public class Calcuate {
    	public int add(int a,int b){
    		return a+b;
    	}
    	public int subtract(int a,int b){
    		return a-b;
    	}
    	public int multiply(int a,int b){
    		return a*b;
    	}
    	public int divide(int a,int b){
    		return a/b;
    	}
    }
    

     测试类:

     1 package junit;
     2 import org.junit.Assert;
     3 import org.junit.Test;
     4 public class CalcuateTest {
     5     Calcuate calcuate;
     6  
     7     @Test
     8     public void testAdd() {
     9         calcuate = new Calcuate();
    10         int result = calcuate.add(2, 3);
    11         Assert.assertEquals("add error", 5, result);
    12         /*
    13          * "add error":期望值和实际值不一致时,显示的信息
    14          * 5 :期望值
    15          * result :实际值
    16          */
    17     }
    18  
    19     @Test
    20     public void testSubtract() {
    21         calcuate = new Calcuate();
    22         int result = calcuate.subtract(12, 2); 
    23         Assert.assertEquals("subtract error", 10, result);
    24     }
    25  
    26     @Test
    27     public void testMultiply() {
    28         calcuate = new Calcuate();
    29         int result = calcuate.multiply(2, 3);
    30         Assert.assertEquals("multiply error", 6, result);
    31     }
    32  
    33     @Test
    34     public void testDivide() {
    35         calcuate = new Calcuate();
    36         int result = calcuate.divide(6, 3);
    37         Assert.assertEquals("divide error", 2, result);
    38     }
    39 }
  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/qzkuan/p/11477080.html
Copyright © 2011-2022 走看看