Junit的基础学习
一个强大的单元测试框架:
一、组成部分:
1.注解:
(1)@Test 注解: 放在测试方法上,表示这是用于测试其他方法的一个测试单元
@Test
public void testSum1(){
System.out.println("测试SumUtil类的方法sum1");
int result = SumUtil.sum1(1,2);
Assert.assertEquals(result,3);
}
(2)@Before 注解: 放在方法上,表示在测试之前要做的事情,比如开启数据库连接之类的
@Before
public void before(){
System.out.println("测试之前做的事");
}
(3)@After 注解: 放在方法上,表示在测试之后要做的事情
@After
public void after(){
System.out.println("测试之后做的事");
}
(4)@BeforeClass 注解: 修饰的方法会在所有方法被调用前执行,且该方法要是静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件
@BeforeClass
public static void beforeClass(){
System.out.println("在测试之前的之前需要做的事");
}
(5)@AfterClass 注解: 所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )
@AfterClass
public static void afterClass(){
System.out.println("在测试之后的之后需要做的事");
}
(6)@Ignore 注解:忽略这个方法,不要测试它,让它一个人呆着
@Ignore
public void testSum2(){
System.out.println("测试sum2");
int result = SumUtil.sum2(1,2,3);
Assert.assertEquals(result,6);
}
这里给一个实现上面所有注解的方法后,测试一个方法之后的结果: 这样就能明白每个注解的方法会在什么时候运行
在测试之前的之前需要做的事
测试之前做的事
测试SumUtil类的方法sum1
测试之后做的事
在测试之后的之后需要做的事
2.Assert:关于 Assert的用法,除了举例里的判断数字是否相等,还可以判断boolean, 是否是null ,是否是相同对象等等常见逻辑。

二、多个测试:
准备两个TestCase:
public class TestCase1 {
@Before
public void before(){
System.out.println("测试之前做的事");
}
@After
public void after(){
System.out.println("测试之后做的事");
}
@BeforeClass
public static void beforeClass(){
System.out.println("在测试之前的之前需要做的事");
}
@AfterClass
public static void afterClass(){
System.out.println("在测试之后的之后需要做的事");
}
@Test
public void testSum1(){
System.out.println("TestCase1测试testSum1");
int result = SumUtil.sum1(1,2);
Assert.assertEquals(result,3);
}
@Test
public void testSum2(){
System.out.println("TestCase1测试testSum1");
int result = SumUtil.sum2(1,2,3);
Assert.assertEquals(result,6);
}
}
public class TestCase2 {
@Test
public void testSum1(){
System.out.println("TestCase2测试testSum1");
int result = SumUtil.sum1(1,2);
Assert.assertEquals(result,3);
}
@Test
public void testSum2(){
System.out.println("TestCase2测试testSum1");
int result = SumUtil.sum2(1,2,3);
Assert.assertEquals(result,6);
}
}
然后创建一个TestSuite来统一测试两个类中的测试方法:
@RunWith(Suite.class)
@Suite.SuiteClasses({TestCase1.class,TestCase2.class})
public class TestSuite {
}
得到的结果是:
测试之前做的事
TestCase1测试testSum1
测试之后做的事
测试之前做的事
TestCase1测试testSum1
测试之后做的事
在测试之后的之后需要做的事
TestCase2测试testSum1
TestCase2测试testSum1
在测试之前的之前需要做的事
从这里也可以看到,@Before和@After注解会在其所在的类中,为每次测试执行一次
Junit的基础学习的更多相关文章
- Hibernate基础学习2
Hibernate基础学习2 测试hibernate的一级缓存,事务以及查询语句 1)Hibernate的一些相关概念 hibernate的一级缓存 1)缓存是为了提高该框架对数据库的查询速度 2)一 ...
- Spring Framework基础学习
Spring Framework基础学习 Core support for dependency injection,transaction management,web applications,d ...
- MacOS下SpringBoot基础学习
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"springboot"获取视频和教程资料! b站在线视 ...
- maven基础学习-为什么要用maven,帮助解决了什么问题,怎么解决的,希望以后学习每个知识点都可以这样问下自己
maven基础学习 第1章 Maven介绍 1.1 什么是Maven 1.1.1 什么是Maven Maven 的正确发音是[ˈmevən],而不是"马瘟"以及其他什么瘟.Mave ...
- Maven基础学习笔记
Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- HTML5零基础学习Web前端需要知道哪些?
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...
随机推荐
- 专治编译器编辑器vscode中文乱码输出 win10 配置系统默认utf-8编码
VS Code输出会出现乱码,很多人都遇到过.这是因为VS Code内部用的是utf-8编码,cmd/Powershell是gbk编码.直接编译,会把“你好”输出成“浣犲ソ”.如果把cmd的活动代码页 ...
- c# 7.0 6.0 新语法
1.参考地址:https://docs.microsoft.com/zh-cn/dotnet/csharp/tutorials/exploration/csharp-7?tutorial-step=5 ...
- js字符串转时间
function StrToDateTime(value) { if (value) { return (new Date(Date.parse(value.replace(/-/g, "/ ...
- docker(五) 使用Docker Registry搭建镜像私服
1.创建私服 docker run -d --name registry -v /opt/data/registry:/var/lib/registry -p 5000:5000 registry - ...
- Centos下安装Mysql异常
问题1: [root@localhost install-files]# rpm -ivh MySQL-server-5.6.27-1.el6.x86_64.rpm --nosignaturePrep ...
- CodeForces 461B Appleman and T
题目链接:http://codeforces.com/contest/461/problem/B 题目大意: 给定一课树,树上的节点有黑的也有白的,有这样一种分割树的方案,分割后每个子图只含有一个黑色 ...
- Shell命令-文件及目录操作之ls、cd
文件及目录操作 - ls.cd 1.ls:列出目录的内容及其内容属性信息 ls命令的功能说明 ls命令用于列出目录的内容及其内容属性信息. ls命令的语法格式 ls [OPTION]... [FILE ...
- Vim简明学习
前面的话 在linux云服务器上的编辑器默认是vim,类似于windows系统中的记事本,页面简洁,但入门不易.本文将介绍Vim的基础使用 操作模式 vim编辑器有三种模式: 1.命令模式(等待用户输 ...
- springcloud 新增微服务
个人记录 记录公司微服务项目,模块添加的步骤 一 创建Module 选择maven groupid和artifactid 参考 pom文件 <project xmlns="http: ...
- python学习日记(内置、匿名函数练习题)
用map来处理字符串列表 用map来处理字符串列表,把列表中所有水果都变成juice,比方apple_juice fruits=['apple','orange','mango','watermelo ...