JUnit单元测试基础要点
JUnit单元测试基础要点
1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确。
2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的。
3.单元测试主要是来测试程序的结果和自己期望的值是否相等
4.创建测试类的步骤:
1)在工程下面创建一个名为 test 的 Source Folder ,这个源程序文件夹和 src文件夹的阶级是相等的
2)测试类和目标类的包名要相同,这样的好处是测试类就不要import导入目标类的源码
3)测试类的命名规则:假设目标类的名字是 Calculator,则创建的测试类应命名为 CalculatorTest 或者 TestCalculator
5.JUnit测试框架目前大体分为两种(JUnit 3.8 和 JUnit 4.x)
———————————— JUnit 3.8 ———————————————
涉及到的包一般是 import junit.framework.*
6.在 JUnit 3.8 中,测试类要继承TestCast类,而TestCast类又继承于Assert类,测试方法需满足如下原则:
1)修饰符设为 public
2)返回类型 void
3)没有方法参数
4)方法名称必须以test开头
7.不能依赖于测试方法的执行顺序
8.setUp方法和testDown方法都是TestCase类的方法
1)setUp方法是在执行每个测试方法之前执行的
2)testDown方法是在执行每个测试方法之后执行的
———————————— JUnit 4 ———————————————
涉及到的包是 import org.junit.*
9)在junit 4 当中测试类无需继承于 TestCase类,测试方法的名字也无需以test开头,主要以注解的方式来定义,只要在测试方法加上@Test就可以进行测试,但有些原则还是要以junit3 的风格来设计,比如测试方法以test开头,习惯问题吧,
10)
- @Test :定义一个测试方法的标志
- @Test(timeout=1000) :设置超时时间,如果测试时间超过了你定义的timeout,测试失败
- @Test(expected) : 申明出会发生的异常,比如 @Test(expected = Exception.class)
- @Before : 跟junit 3.8 上的setUp() 方法同样的效果,方法名最好和setUp()一样,但不强求,在每一个测试方法之前被执行
- @After : 跟junit 3.8 上的tearDown() 方法同样的效果,方法名最好和tearDown()一样,但不强求,在每一个测试方法之后被执行
- @BeforeClass : 被该注解申明的方法,功能是:在所有的测试方法之前执行,只执行一次
- @AfterClass : 被该注解申明的方法,功能是:在所有的测试方法之后执行,只执行一次
- @Ignore :让 测试方法 或 测试类 不被执行,让其失去测试的功能
小结:
如果一个测试类里有8个测试方法,那么每个测试方法都需要创建一个测试类对象,每一个对象只会调用一个测试方法(为了符合命令模式的约定),总共创建了10个测试类对象,
在添加测试方法之前,需要对测试方法做一些判断:
1)修饰符设为 public
2)返回类型 void
3)没有方法参数
4)方法名称必须以test开头
如果满足以上要求,则添加到集合中作为测试方法来执行
JUnit单元测试基础要点的更多相关文章
- junit单元测试(keeps the bar green to keeps the code clean)
error是程序错误,failure是测试错误. junit概要: JUnit是由 Erich Gamma (设计模式的创始人)和 Kent Beck (敏捷开发的创始人之一)编写的一个回归测试框架( ...
- 基础-Junit单元测试_反射_注解
一.Junit单元测试 1.1 测试分类: 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 白盒测试:需要写代码的.关注程序具体的执行流程. 1.2 Junit使用(白盒测试) 使用步 ...
- day1 java基础回顾-Junit单元测试
Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好是放到同一个包中(可以是不同的源文件 ...
- java基础第11期——Stream流、方法引用、junit单元测试
1.Stream流 Stream流与io流是不同的东西,用于解决集合类库已有的弊端, 1.1 获取Stream流: Collection集合的Stream方法,注意Map集合要经过转化 default ...
- JUnit单元测试框架的使用
http://blog.csdn.net/mao520741111/article/details/51462215 原文地址 http://www.open-open.com/lib/view/op ...
- Spring完全基于Java配置和集成Junit单元测试
要点: 配置继承WebApplicationInitializer的类作为启动类,相当于配置web.xml文件 使用@Configuration注解一个类,在类中的方式使用@Bean注解,则表名该方法 ...
- JUnit单元测试教程(翻译自Java Code Geeks)
JUnit单元测试教程--终极指南 JUnit单元测试教程终极指南 说明 单元测试简介 1 什么是单元测试 2 测试覆盖 3 Java中的单元测试 JUnit简介 1 使用Eclipse实现简单JUn ...
- Junit单元测试随笔
Junit单元测试随笔 Mooctest 使用心得: Mooctest IDE非常适合新手使用,相比于Eclipse,他免去了配置环境的麻烦.eclipse中 Junit 编写代码经验总结 刚开始写测 ...
- Junit单元测试、反射、注解
Junit单元测试: * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2. 白盒测试:需要写代码的.关注程序具体的执行流程. * Junit使用:白盒测试 * 步 ...
随机推荐
- luogu P3383 【模板】线性筛素数
题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行 ...
- BZOJ1084 SCOI2005最大子矩阵
考虑DP f[i][j][k]表示一行到i一行到j共取k块最大值,类似于最长公共子序列n^2那种 注意相等时可以一起拿 By:大奕哥 #include<bits/stdc++.h> usi ...
- 2018ECfinal J. Philosophical Balance
2018ECfinal J. Philosophical Balance 题目大意: 给出一个字符串 \(s\) ,你需要给每一个 \(i\) 一个 \([0,1]\) 之间的权值 \(k_i\) , ...
- [HNOI2012]集合选数 --- 状压DP
[HNOI2012]集合选数 题目描述 <集合论与图论>这门课程有一道作业题,要求同学们求出\({1,2,3,4,5}\)的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x ...
- hibernate之条件查询
一.条件查询简介 条件查询是更据面向对象特色的数据查询方式,主要通过如下3个类完成 1.Criteria:代表一次查询 2.Criterion:代表一个查询条件 3.Restrictions:产生查询 ...
- SUSE Linux忘记root密码的对策
1)开机,进入GRUB界面: 此时有两个选择: SUSE LINUX ENTERPISE SERVER 10 SUSE LINUX ENTERPISE SERVER 10 (Failsafe) 移动光 ...
- 如何测试Nginx的高性能
简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器: 作为一款轻量级的Web服务器,具有占有内存少, ...
- 在WPF中快速实现键盘钩子
大部分的时候,当我们需要键盘事件的时候,可以通过在主窗口注册KeyBinding来实现,不过,有的时候我们需要的是全局键盘事件,想在任何一个地方都能使用,最开始的时候我是通过键盘钩子来实现的, 不过键 ...
- STM32 Hardware Development
http://www.st.com/web/en/resource/technical/document/application_note/CD00164185.pdf AN2586 http://w ...
- 最好的 NMAP 扫描策略
# 适用所有大小网络最好的 nmap 扫描策略 # 主机发现,生成存活主机列表 $ nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24 $ grep &q ...