JUnit介绍

JUnit是一个开源的Java单元测试框架,由 Erich Gamma 和 Kent Beck 开发完成。

1  JUnit简介

JUnit主要用来帮助开发人员进行Java的单元测试,其设计非常小巧,但功能却非常强大。

下面是JUnit一些特性的总结:

— 提供的API可以让开发人员写出测试结果明确的可重用单元测试用例。

— 提供了多种方式来显示测试结果,而且可以扩展。

— 提供了单元测试批量运行的功能,而且可以和Ant很容易地整合。

— 对不同性质的被测对象,如Class,JSP,Servlet等,JUnit有不同的测试方法。

2  为什么要使用JUnit

以前,开发人员写一个方法,如下代码所示:

//******* AddAndSub.java**************

//如果要对AddAndSub类的add和sub方法进行测试,通常要在main里编写相应的测试方法,如下代码所示:

//******* MathComputer.java**************

public Class AddAndSub {

    public static int add(int m, int n) {

        int num = m + n;

        return num;

    }

    public static int sub(int m, int n) {

        int num = m - n;

        return num;

    }

    public static void main(String args[]) {

        if (add (4, 6) == 10)) {

            System.out.println(“Test Ok”);

        } else {

            System.out.println(“Test Fail”);

        }

        if (sub (6, 4) ==2)) {

            System.out.println(“Test Ok”);

        } else {

            System.out.println(“Test Fail”);

        }

    }

}

从上面的测试可以看出,业务代码和测试代码放在一起,对于复杂的业务逻辑,一方面代码量会非常庞大,另一方面测试代码会显得比较凌乱,而JUnit就能改变这样的状况,它提供了更好的方法来进行单元测试。使用JUnit来测试前面代码的示例如下:

//******* TestAddAndSub.java**************

import junit.framework.TestCase;

public Class TestAddAndSub  extends TestCase {

public void testadd() {

//断言计算结果与10是否相等

assertEquals(10, AddAndSub.add(4, 6));

}

public void testsub() {

//断言计算结果与2是否相等

assertEquals(2, AddAndSub.sub(6, 4));

}

public static void main(String args[]){

junit.textui.TestRunner.run(TestAddAndSub .class);    }

}

从上可以看到,测试代码和业务代码分离开,使得代码比较清晰,如果将JUnit放在Eclipse中,测试起来将会更加方便。

junit基础学习之-简介(1)的更多相关文章

  1. AspectJ基础学习之一简介(转载)

    AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...

  2. junit基础学习

    学习地址一:http://blog.csdn.net/andycpp/article/details/1327147/ 学习地址二:http://blog.csdn.net/zen99t/articl ...

  3. junit基础学习之-参数初始化(5)

    package swust.edu.cn.postdoctors.service.impl; import java.util.Arrays; import java.util.Collection; ...

  4. junit基础学习之-测试service层(3)

    测试步骤: 在之前的文章中已经加了junit的环境,这就不需要了. 1.加载junit类,spring配置文件,指明junit测试器,@Runwith 2.定义变量,service,不可以使用spri ...

  5. junit基础学习之-测试controller层(2)

    准备工作: eclipse本身带有junit4,可以直接build path,加入junit. 连接数据库的配置文件需要修改,之前的文件是采用properties+xml文件的形式,但是在测试的时候因 ...

  6. junit基础学习之-引用spring容器的测试(7)

    context 自动注入的文章链接:http://www.360doc.com/content/11/0815/09/2371584_140471325.shtml

  7. junit基础学习之-多线程测试(6)

    步骤: 1.定义单个TestRunner 2.重载单个TestRunner的runTest() 3.定义TestRunner数组,并添加多个TestRunner 4.MultiThreadedTest ...

  8. junit基础学习之-junit3和4的区别(4)

    junit3和junit4的使用区别如下 1.在JUnit3中需要继承TestCase类,但在JUnit4中已经不需要继承TestCase 2.在JUnit3中需要覆盖TestCase中的setUp和 ...

  9. junit基础学习之-断言注解(3)

    断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过. 断言核心方法 assertArrayEquals(expecteds, actuals) 查看两个数组是否 ...

随机推荐

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:表示成功的操作

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. redis学习笔记-03:redis安装

    一.redis的安装和配置 1.下载redis-5.0.4.tar.gz到/opt目录下,解压命令 :tar -zxvf redis-5.0.4.tar.gz,解压后出现redis-5.0.4的文件夹 ...

  3. [Codeforces #608 div2]1271D Portals

    Description You play a strategic video game (yeah, we ran out of good problem legends). In this game ...

  4. Docker 镜像文件的导入和导出

    使用save命令 保存镜像 docker save -o name_by_you.tar exist_images 将文件copy到另一台机器 使用load命令将镜像文件保存到本地仓库 docker ...

  5. hyper-V pcie直通

    横河VI702失败. 显卡没有提示失败,但分配给的那个虚拟机中 检测不到独占的显卡,不知道那里出错了. 参考教程22#:[网络] 既然最新hyper V也支持pcie直通.是不是可以扔掉esxi了?

  6. 连续(Continuity) - 有界(Bounded) - 收敛(Convergence)

    连续(Continuity) 所有点连续   ->   一致连续 (uniform continuity)  ->  绝对连续  -> 李普希兹连续(Lipschitz) 弱    ...

  7. 吴裕雄--天生自然JAVA数据库编程:JDBC2.0操作

    import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...

  8. arm linux 移植 udhcp 与 使用

    背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...

  9. 动态代理,AOP和Spring

    笔记 1. 什么是AOP? Aspect-Oriented Programming 面向切面编程,关注一个统一的切面,相对于OOP(面向对象编程). 适合的场景: 日志 缓存 鉴权 如果用OOP来做怎 ...

  10. 2.13 阶段实战 使用layui重构选课系统

    一.说在前面   昨天  学习表单校验插件validate,并使用ajax 自定义校验规则   今天 使用layui重构选课系统 二.题目要求 1.项目需求: 本项目所开发的学生选课系统完成学校对学生 ...