本人一直很喜欢JAVA,可是真正接触到JUnit也不过半年。由于公司进行网页测试,采用的是 JUnit+selenium的方式搭建的测试框架,然后采用JAVA语言编写,所以本人也好好研究了一下JUnit。几天下来,发现还蛮好玩。个人觉得 最好的教程就是官网上的英语user manual,认真看下去的话一点也不难。本人有总结的习惯,所以就顺便把教程给翻译了一下,留作自己学习JUnit的一个足迹。还是那句话,好好学习, 天天向上,然后生活越来越美好。

JUnit本身是一个JAVA语言的单元测试框架。还可以用在回归测试中。而回归测试是指修改旧代码后,重新进行测试以确认修改没有引入新的错误或导致其它代码产生错误。

其实TestNG跟JUnit类似,而且生成的report比JUnit更方便查看一点,关于两者的比较可以参考官网的一篇文章:http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/ 。

由于一些特性是刚出来的,建议在新版本的JUnit上运行(我的是JUnit 4.11)。

关于JUnit 的一些好的资源:

JUnit主页:http://junit.org/

FAQ:http://junit.org/faq.html

JUnit JavaDoc:http://junit.org/javadoc/latest/index.html

JUnit Tutorial:http://www.mkyong.com/tutorials/junit-tutorials/

JUnit Cookbook:http://junit.org/cookbook.html

探索 JUnit 4.4 新特性:http://www.ibm.com/developerworks/cn/java/j-lo-junit44/

JUnit github: https://github.com/junit-team/junit

开源中国JUnit: http://my.oschina.net/pangyangyang/blog/144495

路过的时候发现的一个好玩的博客:

To Test or Not to Test? That’s a Good Question:http://www.threeriversinstitute.org/blog/?p=187

从一个简单的JUnit项目开始

1.在eclipse新建一个项目, "New"-> "Java Project" ,项目名字为"JunitDemo"。

2.添加JUnit4库。有两种方式添加JUnit 库:

1)由于Eclipse 默认已经集成了JUnit插件,所以我们可以直接使用eclipse下载好的JUnit。在项目名上右键,选 择"Properties"->"Java Build Path"->"Libraries"->"Add Library..."->"JUnit"->"JUnit4","OK"之后JUnit4库添加成功。我们会看到项目下有一个"JUnit 4"的库,展开之后有两个jar文件:junit.jar和 org.hamcrest.core.jar。

2)我们也可以自己新建一个库,然后将我们下载好的jar文件放进去。个人建议后一种,因为可以添加一些其他的Jar文件,比如 assertThat会用到的hamcrest-library.jar。首先下载必要的Jar包,我这边是 junit.jar、hamcrest-library-1.3.jar、hamcrest-core-1.3.jar。其次在eclipse新建用户 库,方法是打开“Windows"->"Preferences"-> "User Libraries" ->"New",输入库名(”MyJunit4"),点击”OK",选中“MyJunit4",点击”Add External JARs...",选择jar包路径,点击“打开”即可。最后是在本项目中导入用户库,方法是在项目名上右键,选 择"Properties"->"Java Build Path"->"Libraries"->"Add Library..."->"User Library",选中刚刚新建的用户库(MyJunit4),点击”Finish"即可。

3.由于我们针对网页进行测试,所以还需要添加selenium2库。方法参考我的《Selenium Webdriver》。

4.在项目名上右键新建一个包,名字为“com.junit.demo"。

5.在包名上右键,"New" -> "JUnit Test Case" ,选中“Setup"和“TearDown" ,case名字为“WebTest01"。

package com.junit.demo;  

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver; public class WebTest01 {
WebDriver driver=null; @Before
public void setUp() throws Exception {
driver=new FirefoxDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize();
} @After
public void tearDown() throws Exception {
driver.quit();
} @Test
public void test() throws InterruptedException {
driver.findElement(By.id("kw")).sendKeys("JUnit");
driver.findElement(By.id("su")).click();
Thread.sleep(1000);
assertTrue(driver.getTitle().contains("JUnit"));
}
}

6.仿照第三步建立TestCase: "WebTest02","WebTest03","WebTast04"。这样一共建立了4个test case。

7.在包名上右键,"New" -> "JUnit Test Suite" ,选中 “New JUnit 4 suite",名字为“TestSuite01",在“Test classes to include in suite:"选中所有的Test Case 。

8.在TestSuite01上右键,选择 “Run As "-> "JUnit Test" 。即可看到所有选中的Case都运行了一遍。

9.在下方的JUnit可以看到运行结果,包括Run 了多少case,有多少Errors,还有多少有Failures。双击fail的case对应的 “Failure Trace"还可以追踪到具体的行,对于调试很有帮助。如果找不到JUnit窗口,可以通过 "Windows"->"Show Views"->"Other"->"JUnit" 打开。

一个简单的JUnit项目的更多相关文章

  1. 通过myclipse建立一个简单的Hibernate项目(PS:在单元测试中实现数据的向表的插入)

    Hibernate的主要功能及用法: Ⅰ.Hibernate封装了JDBC,使Java程序员能够以面向对象的思想对数据库进行操作 Ⅱ.Hibernate可以应用于EJB的J2EE架构,完成数据的持久化 ...

  2. 搭建Vue.js环境,建立一个简单的Vue项目

    基于vue-cli快速构建 Vue是近年来比较火的一个前端框架,所以搭建Vue.js环境,要装webpack,vue-cli,Vue 安装webpack命令如下 $ cnpm install webp ...

  3. Django入门第一步:构建一个简单的Django项目

    Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...

  4. 一个简单的ssm项目

    准备说明jdk.tomcat.idea.mave配置请看我前两篇,这里说下mysql以及我的mysql图像化工具 数据库 项目概览 项目构建--------搭建一个简单的mave的web项目,构建步骤 ...

  5. 带你搭建一个简单的mybatis项目:IDEA+spring+springMVC+mybatis+Mysql

    最近小编有点闲,突发奇想想重温一下mybatis,然后在脑海中搜索了一下,纳尼,居然不太会用了,想到这里都是泪啊!!现在我所呆的的公司使用的是springboot+hebinate,编程都是使用的JP ...

  6. 用 Eclipse 创建一个简单的web项目

    Eclipse neon 汉化版 ; 1;右击新建 -->  选择 动态Web项目 2:  填写 项目名 项目位置 ; 选择 Dynamic web module version 和 tomca ...

  7. 使用一个Python脚本来运行一个简单的Django项目

    创建视图 Django是一个模型-模板-视图(model-template-view,MTV)框架. 视图部分通常检查看HTTP给出的请求和查询或者结构,这些信息是发送到表示层的数据. 我们在 hel ...

  8. JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)

    接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...

  9. 一个简单的nodejs项目(cat-names)分析

    https://github.com/sindresorhus/cat-names 一个非常简单的nodejs项目,用来方便的获取猫猫的名字: 安装: npm install --save cat-n ...

随机推荐

  1. Java基础知识强化之IO流笔记15:递归之删除带内容的目录案例

    1. 需求:递归删除带内容的目录 分析:   (1)封装目录   (2)获取该目录下的所有文件或者文件夹的File数组   (3)遍历该File数组,得到每一个File对象   (4)判断该File对 ...

  2. shell 求总分

    求总分并且输出: 文件a.txt 学号 姓名 性别 年龄 张三 男 赵四 男 李丽 女 文件b.txt 学号 语文 数学 英语 方法1: #!/bin/sh paste a.txt b.txt ccc ...

  3. 怎么在后台修改前台html页面的key、title、description

    public void UpdateMeta(string title, string keyword, string desc) { ; i >= ; i--) { if (this.Head ...

  4. jquer “$” 扩展(笔记)

    /** * Created by shanruo on 16-03-10. */ (function ( $ ){ $.extend ({ /* * 根据参数名获取参数 @name String 参数 ...

  5. [置顶] css 背景透明,文字不透明,alpha滤镜,opacity,position:relative;

    都知道,在alpha滤镜下,背景透明了,里面的文字也会跟随透明,我们可以设置内容的position为relative可以解决这个问题 但是在position为absolute这么做却没有效果,怎么解决 ...

  6. 将CSS CLIP属性应用在:扩展覆盖效果

    我们想要展示如何利用CSS3 clip属性制作一种简单而整洁的扩展效果,当点击一个box元素时实现平稳过渡.这个想法是为了实现某种叠加效果,好像它实际上在各个元素的下面.点击其中一个元素将创建一个切断 ...

  7. ls命令解析

    ls 列出目录的内容.它可是我们所经常使用的命令,那么你了解它所有的功能吗?下面让我们来看看吧! 命令格式 ls [OPTION]... [FILE]... 参数说明 -a , --all 显示所有文 ...

  8. MyBatis学习笔记(3)—— 利用mybatis灌入假数据

    由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析.正好最近自己学习了mybatis .因此使用mybatis 配置一个select.insert 的简单操作语句,用于灌入 ...

  9. Oracle高级查询,事物,过程及函数

    一 数值函数 数值 abs,ceil,floor,round,trunc字符串 instr,substr SQL>SELECT 'ABS':'|| ABS(-12.3) FROM DUAL; 运 ...

  10. 如何用angularjs制作一个完整的表格之一__创建简单表格

    初步接手人生的第一个项目,需要用angularjs制作表格和实现各种功能,因此遇到了各种问题和以前不熟悉的知识点,在此记录下来,以供大家学习交流,解决方式可能并不完善或符合规范,如果大家有更好的方式欢 ...