JUnit基本介绍
一、什么是单元测试
单元测试(Unit Testing)是指在计算机编程中,针对程序模块来进行正确性检验的测试工作。
单元测试的特点如下:
※ 程序单元是应用最小的可测试部件,通常采用基于类或者类的方法进行测试
※ 程序单元和其他单元是相互独立的。
※ 单元测试的执行速度很快。
※ 单元测试发现的问题,相对容易定位。
※ 单元测试通常由开发人员完成
※ 通常称为白盒测试。
速记关键词:针对类、速度快、好定位
二、安装JUnit
1、启动Eclipse,新建一个java工程,名字为FirstPrj;
2、在新建工程名称上单击鼠标右键,在弹出快捷键菜单中选择“Properties”;
3、弹出当前工程的属性对话框,选择“Java Build Path”选项,单击“Libraries”标签栏,单击“Add Library”按钮,如下图

4、在弹出的“Add Library”对话框中,选择“JUnit”选项,单击“Next”按钮


5、在弹出的“JUnit Library”对话框中,单击“Finish”按钮
6、在“Java Build Path”对话框中,显示JUnit图标表示引入JUnit4成功

三、测试注解
通过Eclipse的JUnit Test Case 向导,可以自动生成测试框架方法,每个方法上均含有一个@字符的关键字描述,此关键字为JUnit4新增的注解(Annotation)功能,每个注解关键字都有其自身含义。
@BeforeClass :表示此注解的方法在测试类被调用之前完成 ,在一个测试类中只能声明此注解一次,次注解对应的方法只能被执行一次。
@AfterClass :表示使用此注解的方法在测试类被调用结束退出之前执行,在一个测试类中只能声明此注解一次,并且此注解对应的方法只能被执行一次。
@Before :表示此注解的方法在每个@Test调用之前被执行,即一个类中有多少个@Test注解方法,那么@Before注解方法会被调用多少次
@After :表示此注解的方法在每个@Test调用结束之后被执行,即一个类中有多少个@Test注解方法,那么@After注解方法会被调用多少次
@Test :表示使用此注解的方法为一个单元测试用例,在一个测试类中可以多次声明此注解,每个注解为@Test的方法只被执行一次
@Ignore:表示使用此注解方法为暂时不执行的测试用例方法,会被忽略
@Test(timeout=2000) :表示此用例执行时间不能超过2000毫秒
@Test(expected=ArithmeticException.class):表示此方法执行后,必须抛出ArithmeticException异常错误才能认为测试用例执行成功
速记:BeforeClass、AfterClass 类前、类后只执行一次
Before、After 方法前、方法后执行,方法执行它执行
Test 为一个单元测试用例
四、测试套以及使用JUnit编写WebDriver脚本
1、在测试工程上右键,在弹出的快捷菜单中选择“NEW”——>“Other”命令
2、在弹出的对话框中选中“JUnit”下的“JUnit Test Suite”选项,在单击“Next”按钮
3、弹出“New JUnit Test Suite”对话框,选中需要测试的类,单击“Finish”按钮
测试套其实就是一个个测试类的集合
使用Junit编写WebDriver脚本
package cn.gloryroad;
import org.openqa.selenium*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.junit.After;
import org.junit.before;
import org.junit.test;
public class FirstJunit{
public WebDriver driver;
String baseUrl = "http://www.sogou.com/"; @Before
public void setUp() throws Exception{
//若无法打开浏览器,可直接设置firefox的路径
System.setProperty("webdriver.firefox.bin","c:\\Program Fires(X86)\\Mozilla Firefox\\firefox.exe");
driver=new FirefoxDriver();
} @After
public void tearDown() throws Exception{
driver.quit();
} @Test
public void test(){
//打开网页
driver.get(baseUrl+"/");
//在搜索框中输入"selenium测试"
driver.findElement(By.id("query")).sendKeys("selenium测试");
//点击搜索按钮
driver.findElement(By.id("stb")).click();
}
}
JUnit基本介绍的更多相关文章
- 【原创】Junit4详解一:Junit总体介绍
Junit是一个可编写重复测试的简单框架,是基于Xunit架构的单元测试框架的实例.Junit4最大的改进是大量使用注解(元数据),很多实际执行过程都在Junit的后台做完了,而且写test case ...
- junit基本介绍视频笔记1
程序员每天工作的基本流程: 1.从svn检出代码: 2.运行单元测试,测试无误,进入下一步: 3.开始一天的代码编写工作: 4.代码提交到服务器之前进行单元测试: 5.单元测试通过提交到svn服务器. ...
- 单元测试利器 JUnit 4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
- [转]单元测试利器 JUnit 4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
- 1.Android JUnit Runner(使用AndroidStudio)
一.Android JUnit Runner介绍 1.Android JUnit Runner 1)是一个测试运行器,用于运行Junit3和Junit4的Android测试包 2)替换Instrume ...
- 泛型、Junit
一. 泛型 1.泛型的好处 **1)编译时,检查添加元素的类型,提高了安全2)减少了类西较换的次数,提高效率 不使用泛型Dog -> Object -> Dog //放入到ArrayLis ...
- 《精通移动app测试实战:技术、工具和案例》图书目录
图书相关链接: 京东网:http://item.jd.com/11891239.html 当当网:http://product.dangdang.com/23924601.html 亚马逊:https ...
- 传智播客JavaWeb day01 快捷键、XML
2015-01-14 一直计划着学习java,今天晚上终于下定决心看了下传智播客朴乾老师的javaweb开发视频day01之第一讲,主要内容是开发工具简单介绍.怎么创建工程.Junit的介绍,我是C# ...
- 单元测试利器JUnit4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
随机推荐
- word2010激活工具使用方法
1.关闭杀毒,关闭正打开着的word文档 2.执行Activator_v1.2.exe-->Activation Office 2010VL -->按1 -->完毕. 3.打开wor ...
- MT【133】磨刀不误砍柴工
(2018,4月学考数学填空最后一题) \(f(x)=2x^2-(x-a)|x-a|-2 \ge 0\)对任意\(x\in R\)恒成立,求\(a\)的范围______ 提示:\(f(0)=a|a|- ...
- BZOJ 2580: [Usaco2012 Jan]Video Game
2580: [Usaco2012 Jan]Video Game Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 142 Solved: 96[Subm ...
- 【BZOJ2989】数列(二进制分组,主席树)
[BZOJ2989]数列(二进制分组,主席树) 题面 BZOJ 权限题啊... Description 给定一个长度为n的正整数数列a[i]. 定义2个位置的graze值为两者位置差与数值差的和,即g ...
- CVE-2018-1111劫持dhcp造成centos代码执行漏洞
0x01 漏洞概述 近日,红帽官方发布了安全更新,修复了编号为CVE-2018-1111的远程代码执行漏洞,攻击者可以通过伪造DHCP服务器发送响应包,攻击红帽系统,获取root权限并执行任意命令. ...
- 《深入理解计算机系统》学习总结 Chap7
第七章 链接 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或拷贝)到存储器并执行.链接可以执行于编译时,也就是在源代码被翻译成机器代码时:也可以执行于加载时,也就 ...
- npm publish gives “unscoped packages cannot be private”
解决方法: npm publish --access public 详细参考此处
- 解题:SCOI 2011 糖果
题面 能把差分约束卡死的题,因为正解并不是差分约束,然而被我用一种奇怪的姿势过去了... 差分约束就是相等互相连零边,不超过/不低于从不多的一方向另一方连零边,超过/低于从少的一方向另一方连最小的边权 ...
- bzoj2758【scoi2012】Blinker的的噩梦
题目描述 一天Blinker醒来,发现自己成为了一个二维世界的点,而且被标记上了一个奇怪的值. 这个世界是由N个边界互不相交(且不相切)的图形组成,这里图形仅包括圆和凸多边形.每个图形还有一个权值.每 ...
- 实验三:将读取数据功能从Repository中分离
先理解下面这段话之后再开始做实验 经过实验二的改造之后,我们代码有一点结构的概念了: Listing.aspx:向Repository要Products,然后将得到的Products在页面中显示出来. ...