Junit主要用于单元测试,即白盒测试。它是一个开源的由JAVA开发的一个用于测试的框架。

Junit的几个基本概念:TestCase,TestSuite,TestFixtrue

TestCase:代表一个测试用例,每一个TestCase实例都对应一个测试,这个测试通过这个TestCase实例的名字标志,以便在测试结果中指明哪个测试出了问题。TestCase继承自Assert,因此可以实现各种断言。

TestSuite:代表需要测试的一组测试用例,也是测试用例的集合。

TestFixtrue:代表一个测试环境,用于租户一组测试用例,这组测试用例需要共同的测试运行环境。

现在世面上有很多的测试工具,比如说NUNIT,PHPUNIT等。但是在JAVA的世界里面JUnit是最适合我们的单元测试工具。
A:可以使测试代码与产品代码分开
B:针对某一个类的测试代码通过较少的改动便可以应用于另一个类的测试
C:易于集成到测试人员的构建过程中,JUnit和Ant的结合可以实施增量开发
D:JUnit是公开源代码的,可以进行二次开发
E:可以方便地对JUnit进行扩展

编写原则:
A: 是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写
B: 是使测试单元保持持久性
C: 是可以利用既有的测试来编写相关的测试

例证:

第一步:拷贝jar包

junit-3.8.2.jar(4.x主要增加注解应用)

第二步:编写业务类

public class User{
private String username; public String getUsername(){
return username;
} public void setUsername(String username){
this.username = username;
} //添加方法
public String logion()throws Exception{
if("admin".equal(username)){
return "success"
}else{
return "error"
}

}

第三步:定义测试类

测试类最好单独建立项目,或者单独定义文件夹储存,需要继承junit.framework.TestCase

第四步:增加测试方法

测试方法必须是public,不应该有返回值,方法名必须以test开头,无参数测试方法是有执行先后顺序,按照方法的定义先后顺序。多个测试方法对同一个业务方法进行测试,一般每个逻辑分支机构都有测试到。

public class TestUserextends TestCase{
publicvoid testUser_Success() throws Exception{
//准备数据
Useraction = new User();
action.setUsername("admin"); //调用被测试方法
Stringresult = action.login(); //判断测试是否通过
assertEquals("success",result);
}
}

运行程序,如果测试成功会出现如下图所示的结果

如果运行失败,有方法没有通过测试,那么就会显示出在哪个方法出错了。上图中绿色的条会变成红色的。

第五步:测试类的生命周期方法

//用来进行初始化操作
@Override
protectedvoid setUp() throws Exception {
System.out.println("setUp...");
} //用来做销毁操作
@Override
protectedvoid tearDown() throws Exception {
System.out.println("tearDown...");
}

setUp方法会在每个测试方法前执行一次。tearDown方法会在每个测试方法后执行一次。

Spring(3)—— Junit框架单元测试的更多相关文章

  1. 使用Spring配合Junit进行单元测试的总结

    最近公司的项目和自己的项目中都用到了spring集成junit进行单元测试,总结一下几种基本的用法: 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@RunWith注 ...

  2. Spring整合JUnit框架进行单元测试代码使用详解

    一.Spring提供的JUnit框架扩展:   1. AbstractSpringContextTests:spring中使用spring上下文测试的Junit扩展类,我们一般不会使用这个类来进行单元 ...

  3. Spring整合Junit框架进行单元测试Demo

    一.开发环境 eclipse版本:4.6.1 maven版本:3.3.3 junit版本:4.12 spring版本:4.1.5.RELEASE JDK版本:1.8.0_111 二.项目结构 图 三. ...

  4. Spring整合Junit框架

    一.开发环境 eclipse版本:4.6.1 maven版本:3.3.3 junit版本:4.12 spring版本:4.1.5.RELEASE JDK版本:1.8.0_111 二.项目结构 图 三. ...

  5. spring集成Junit做单元测试及常见异常解决办法

    spring-test依赖包 <!--Spring-test --> <!-- https://mvnrepository.com/artifact/org.springframew ...

  6. Spring boot Junit Test单元测试

    Spring boot 1.40 JUnit 4 需要依赖包 spring-boot-starter-test.spring-test 建立class,加上如下注解,即可进行单元测试,别的帖子里说要加 ...

  7. [转][Java]使用Spring配合Junit进行单元测试的总结

    http://www.51testing.com/html/14/n-1408814.html 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@RunWith注解指定 ...

  8. Spring整合Junit进行单元测试

    I. 加入依赖包 Spring Test (如spring-test-2.5.4.jar) JUnit 4 Spring 其他相关包 II.新建Junit Test Case III.读取配置文件 @ ...

  9. Spring集成JUnit单元测试框架

    一.JUnit介绍 JUnit是Java中最有名的单元测试框架,用于编写和运行可重复的测试,多数Java的开发环境都已经集成了JUnit作为单元测试的工具.好的单元测试能极大的提高开发效率和代码质量. ...

随机推荐

  1. java的LINQ :Linq4j简明介绍

    开发JAVA一段时间,面临的一大问题就是集合操作,习惯了LINQ的简洁语法,对JAVA的集合操作实在是无甚好感,只能通过C系的循环实现筛选等操作,由于没有延迟执行特性,内存占用实在不敢恭维.因此便在网 ...

  2. Redis应用场景-转载

    1.  MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的 ...

  3. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  4. ArrayBuffer简析

    关键技术: JavaScript,ArrayBuffer,Type Array,DataView,Web Worker,性能对比 ArrayBuffer 在文章开头列出了这些关键字,主要就是让大家了解 ...

  5. equals和==的区别 你真的掌握了吗?

    PS:最近读Java编程思想的时候发现了一些小问题.就是equals方法和==,感觉自己是真正掌握了,其实并没有.简单的记录一下. 学习内容: 1.equals 和 == 的区别  equals和== ...

  6. [SDK2.2]Windows Azure Virtual Network (5) 重启、关闭、开启VNet中Virtual Machine

    <Windows Azure Platform 系列文章目录> 我们知道,Windows Azure VM的IP分为以下两种:Internal IP Address和Public VIP ...

  7. 基于HT for Web 3D呈现Box2DJS物理引擎

    上篇我们基于HT for Web呈现了A* Search Algorithm的3D寻路效果,这篇我们将采用HT for Web 3D来呈现Box2DJS物理引擎的碰撞效果,同上篇其实Box2DJS只是 ...

  8. CSS魔法堂:说说Float那个被埋没的志向

    前言  定位系统中第一难理解就是Normal flow,而第二就非Float莫属了,而Float难理解的原因有俩,1. 一开头我们就用错了:2. 它跟Normal flow靠得太近了.本文尝试理清Fl ...

  9. 让我们开启数据库无Linq、零sql时代

    让我们开启数据库无Linq.零sql时代 Moon.Orm 5.0总论 第一部分 MQL Moon.Orm 5.0 (MQL版) 版本维护及下载 (跟踪发布)  Moon.Orm 5.0系列文章 1. ...

  10. Maven提高篇系列之(五)——处理依赖冲突

    这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...