[翻译]Unit testing with JUnit 4.x and EasyMock in Eclipse - Tutorial

利用Eclipse进行单元测试 火龙果软件工程技术中心   本文内容包括:在EclipseIDE中配置jMock和RMockTestExample源代码场景1:使用jMock模拟接口场景2:使用jMock模拟带有默认构造函数的具体类场景3:使用jMock和RMock模拟带有非默认构造函数的具体类场景4:jMock和RMock之间的特定协作快速查看测试工具差别结束语您的传统代码是不是要求使用匹配的类测试套件才能针对其源代码库运行?针对此类目的,jMock堪称是一个优秀的测试框架。但是,并不是所有情况都能够适用,尤其是必须以jMock不期望的方式构造对象时。为避免生成自定义模拟对象套件才能支持应用程序中的单元测试的麻烦,可以调整 立即下载

原文地址:http://www.vogella.de/articles/JUnit/article.html

本文地址:博客园 逖靖寒 http://gpcuster.cnblogs.com

译文:

在Eclipse中使用Junit4.x与EasyMock进行单元测试

摘要

这篇文章简单讲解了如何在Eclipse中利用Junit 4.x和EasyMock进行单元测试。

当你阅读完这篇文章后,可以在Eclipse中使用JUnit进行单元测试。


1. 概要

1.1. 单元测试

单元测试开发人员写的用于测试某一个功能的代码。单元测试可以保证程序的功能正常使用。

JUnit 4.x 是一个自动化测试的框架,最初的作者是Erich Gamma and Kent Beck。它使用Java的annotation特性来标记出需要进行测试的方法。

在JUnit中,有一个非常重要的约定:所有的测试用例都不应该依赖于其他的测试用例。

1.2. 安装

下载JUnit4.x.jar可以去JUnit的官网here ,并且将其添加到classpath中。

现在的Eclipse版本中已经整合了Junit,你可以直接使用。

2. 如何编写单元测试

2.1. 概览

JUnit 使用annotations来区别需要进行测试的方法。

编写一个测试用例:

Static imports在Java 5.0或以上版本是有效的,如:import static org.junit.Assert.*

2.2. 编写你的第一个单元测试

编写Java代码:

2.3. 在Eclipse中运行你的单元测试

在Eclipse的菜单栏中选择:Run As -> JUnit test

Eclipse将通过绿色和红色的状态栏显示运行的结果。

3. 在Eclipse中使用JUnit

3.1. 准备

创建一个全新的项目"de.vogella.junit.junittest"。添加一个lib目录,将junit4.jar添加到classpath中,如果希望知道如何添加classpath,其查看Adding an external library to the Java classpath in Eclipse 。

接着创建一个test的源代码文件夹,如下图所示:

点击"Add folder",然后点击"Create new folder"。创建一个新的文件目录"test"。

3.2. 创建一个需要测试的类

创建一个包 "gpcuster.cnblog.com"。

在包 "gpcuster.cnblog.com"中创建一个类"MyClass" 代码如下: 

 

3.3. 创建一个测试类

选中你需要测试的类,然后操作New ->JUnit Test case,再选择"New JUnit 4 test":

如果你还没有将JUnit放到你的classpath中,Eclipse将询问你是否将其加入classpath中:

测试类的代码如下:    

鼠标右击测试类,然后选择Run-As-> Junit Test。

测试结果如图所示,你可以修改代码中存在的问题,然后再次运行。如果成功,将看到绿色的状态栏。

3.4. 创建测试集

如果需要测试的用例很多,我们可以创建一个测试集,包含所有需要进行测试的测试用例。

选项需要测试的类,然后鼠标右击:New-> Other -> JUnit -Test Suite

创建的代码如下:

4. 进一步了解JUnit

4.1. setUp()与tearDown()

对于每一个测试用例,你都可以实现setUp()和tearDown(). setUp在每一个测试用例初始化的时候被调用。tearDown()在每一个测试用例结束的时候被调用。

4.2. 在Eclipse中使用Static imports

Junit中大量使用了static方法。

Eclipse无法自动导入static imports。

你需要做的是将'org.junit.Assert'导入到Java > Editor > Content Assist > Favorites中。当你这么做了以后,你可以使用Content Assist (Ctrl+Space) 来添加方法。

4.3. Annotations

JUnit 4.x中Annotations的使用如下:

Annotation描述

@Test public void method()

需要被测试的方法。

@Before public void method()

在每一个测试用例执行前,需要调用的方法。

@After public void method()

在每一个测试用例执行后,需要调用的方法。

@BeforeClass public void method()

所有测试用例执行前,需要调用的方法。

@AfterClass public void method()

所有测试用例执行后,需要调用的方法。

@Ignore

忽略该测试的方法。

@Test(expected=IllegalArgumentException.class)

期望测试用例抛出指定的异常。

@Test(timeout=100)

测试用例期望的执行时间。

表1. Annotations

4.4. Assert语句

JUnit 4.x中Assert语句的使用如下:

Assert语句描述

fail(String)

方法失败。

assertTrue(true)

检测是否为真。

assertsEquals([String message], expected, actual)

检测2个对象是否相等

assertsEquals([String message], expected, actual, tolerance)

检测2个对象在允许的精度范围内是否相等。

assertNull([message], object)

检测是否为空。

assertNotNull([message], object)

检测是否为非空。

assertSame([String], expected, actual)

检测2个对象是否是为一个对象。

assertNotSame([String], expected, actual)

检测2个对象是否是为非一个对象。

assertTrue([message], boolean condition)

检测是否为真。

try {a.shouldThroughException(); fail("Failed")} catch (RuntimeException e) {asserttrue(true);}

检测是否抛出异常。

表2. Assert语句

5. Easy Mock

5.1. Easy Mock 概要

我们的上一个示例非常简单,但是在实际的环境中,我们的需要测试的类可能会依赖与其他的第三方库。

所以,测试我们的类需要去模拟或者是控制其他的第三方库。最佳的处理方案应该是创建一个mock对象。mock对象可以手工编写产生也可以通过使用EasyMock来产生。

mock对象是一个空的接口,你可以完全控制实现接口的对象的所有行为。

5.2. Using Junit and Easy Mock

下载EasyMock,将easymock.jar添加到你的classpath中。

创建一个Java Project JavaMockTest。 同时创建下面代码中的这些类。 IncomeCalculator需要被测试。

我们在JUnit中使用EasyMock来进行测试:

expect方法告诉我们的Mock对象如果针对特殊的参数返回特定的值。

我们需要调用reply方法使我们的Mock对象有效。

当调用结束的时候,你可以调用verify的方法来检查Mock对象是否被调用了。

 

原文地址:http://www.vogella.de/articles/JUnit/article.html

本文地址:博客园 逖靖寒 http://gpcuster.cnblogs.com

MATLAB - 激光雷达 - 相机联合标定(Lidar-Camera Calibration) 激光雷达传感器和相机通常在自动驾驶应用中结合使用,因为激光雷达传感器收集三维空间信息,而相机则以二维图像捕捉空间的外观和纹理。您可以融合来自这些传感器的数据来改进物体检测和分类。激光雷达-相机标定可以估算出一个变换矩阵,给出两个传感器之间的相对旋转和平移。在进行激光雷达-相机数据融合时,您可以使用该矩阵。本图说明了激光雷达和相机标定 (LCC) 过程的工作流程,我们使用棋盘格作为标定对象。我们从激光雷达和相机数据中提取棋盘角和平面,然后在它们的坐标系之间建立几何关系,进行标定。 阅读详情

相关推荐

数学建模美赛O奖论文研读启示录——从模仿开始

数学建模美赛O奖论文哪些地方比较出彩?我们可以从中学到什么东西?可以从哪些地方进行模仿?我总结了一些O奖论文里我认为比较好的地方,跟大家一起学习交流!

小宇的修炼之路 5429

使用JUnit和EasyMock进行单元测试

一、测试环境 eclipse JUnit4 EasyMock-4.0 一般eclipse自带有JUnit4版本的测试包 EasyMock的jar包也可以自己去官网下载 链接: easymock-4.0.2.jar 提取码: s2bp 二、导入包 1. 创建工程JUnit_test,导入JUnit测试包 导入成功 二、简单的JUnit测试 1. 创建包名com.test,创建类demo.jav...

ywm_up 3142

C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

本文详细介绍如何将串口通信将数据进行本次存储,主要介绍常用的csv、txt格式文件,由多年实战经验总结,绝对干货!

qq_34059233的博客 7239

eclipse配置git_Jenkins上集成JUnit和TestLink进行Java单元测试流程与配置

转:https://blog.csdn.net/ikoqzurydr/article/details/81568864此文档是基于已存在的Testlink测试项目而进行的后续配置,即如果是首次使用Testlink,需要首先根据Testlink的使用文档进行测试项目->测试计划->测试用例的完整创建后再进行此Jenkins平台的集成。具体Testlink使用实例参见:https://bl...

weixin_39673947的博客 206

传感器应用案例:压力传感器在工业自动化中的应用_(13).压力传感器的数据采集与处理

数据采集系统(Data Acquisition System, DAS)是连接传感器和控制系统的重要桥梁。它包括硬件(如数据采集卡、信号调理器)和软件(如数据采集软件、数据处理算法)两部分。信号调理:将传感器输出的模拟信号转换为适合AD转换的信号。AD转换:将模拟信号转换为数字信号。数据传输:将数字信号传输到控制系统或上位机。存储:将采集的数据存储在本地或远程数据库中。实时性:保证数据的实时性和准确性。压力传感器的数据采集与处理是工业自动化中不可或缺的一部分。

2401_87715305的博客 1620

3.4 ISIS和OSPF之间路由引入

通过以上输出可以看到OSPF的路由引入到了IS-IS中。通过以上输出可以看到ISIS的路由没有传递给OSPF。通过以上输出可以看到OSPF的路由没有传递给ISIS。通过以上输出可以看到ISIS的路由被引入进了OSPF。掌握在IS-IS中引入OSPF路由的方法。掌握在OSPF中引入IS-IS路由的方法。图3-3:ISIS和OSPF之间路由引入。在R3上把ISIS的路由引入到OSPF。OSPF引入外部路由的缺省度量值为1。在R3上把OSPF的路由引入到ISIS。引入的外部路由类型为Type2。

lwljh134的博客 1803

Eclipse中怎么加Junit测试框架

2、点击Build Path下的Configure Build Path。5、选择JUnit library version你需要的版本。3、点击Libraries的Add Library。6、点击Finish。4、选择Junit。

weixin_55742451的博客 930

Matlab之App Designer 一键自动生成带有表格的报告

本文采用案例讲解的方式介绍了采用Matlab中的App Designer开发可视化GUI分析界面后,实现一键自动导出带有表格报告的方法和步骤。可以实现从报告编制等繁琐的工作中解脱出来。

m0_59012156的博客 356

EasyMock 使用方法与原理剖析

 EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。编写自定义的 Mock 对象需要额外的编码工作,同时也可能引入错误。EasyMock 提供了根据指定接口动态构建 Mock 对象的方法,避

mars5337的专栏 1344

包成功安装tiny-cuda-nn,记录安装过程中的问题解决,附带pytorch3d安装【踩坑指南】

该包可以显著提高NeRF训练速度,是和NeRFstudio等框架中,必须使用的。本文提供tiny-cuda-nn可以安装的完整包的下载链接,可以直接上传到项目中安装。附带笔者遇到的问题的解决方案。

zik的博客 7030

Unity 热更新技术 | (二) AssetBundle - 完整系列教程学习

开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来从 AssetBundle - 完整系列教程学习 开始学习吧!

努力前行,总会成为自己心中的那道光 1万+

在Eclipse中使用JUnit进行 单元测试

在Eclipse中使用JUnit进行 单元测试     目录 1.JUnit简介... 2 2.JUnit优点... 2 3.JUnit特性... 3 4.JUnit运用... 3 5.JUnit重要元素... 17                 1.JUnit简介 JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich G

肖米的博客 4160

全志平台camera驱动开发(4)NVP6134芯片4路模拟视频BT656输入

前言 1. 调试平台: 全志V5/T7等有BT656或BT1120的并行接口,理论有DVP接口的一般都支持 2. NVP6134可使用多路视频同时输入 硬件连接 模拟camera1 模拟camera2 NVP6134 ------>NVCSI0 ...

jzwjzw19900922的博客 3532

eclipse配置mockito

解压自动生成单元测试.rar , 解压后的文件复制到eclipse的plugins目录重启eclipse选中要java代码,右键,点击生成测试代码,配置模板

jxctx的专栏 1819

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JUnit + Mockito 单元测试(一)

未接触 JUnit 之前,曾经对茫茫的代码不知所措……哪怕是自己写的……多写注释?重构代码?甚至为一个方法去写一篇技术文章来解释?——这些都是试过,感觉不是“控制代码”的可行之道,甚至说”徒劳“的。关于单元测试(Unit test),之前亦略有所闻,感觉用处不大,因为对一个方法检测返回的结果是否正确,——有点无聊——心想,我写的方法当然能返回预期的结果,...

weixin_33913377的博客 1187

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

在 Eclipse 中使用 5 个有用的插件来自动化代码质量分析

在 Eclipse 中使用 5 个有用的插件来自动化代码质量分析 如果能在构建代码前发现代码中潜在的问题会怎么样呢?很有趣的是,Eclipse 插件中就有这样的工具,比如 JDepend 和 CheckStyle,它们能帮您在软件问题暴露前发现这些问题。 开发软件时,我的主要目标之一是:要么防止将缺陷引入代码库,要么限制缺陷的生存期;换言之,要尽早找到缺陷。...

赤山岛 259

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Eclipse使用Mockito入门

Eclipse使用Mockito入门 概述 在Java单元测试时,经常遇到依赖其它模块、但其它模块没有开发好的场景,比如下图:   “被测模块A”依赖于模块B/C/D,单元测试时可以对B/D做Mock(注意:无需对C做Mock)。  Mockito(http://mockito.org/)是一个流行的Mock开源框架,网上介绍也很多,但是我发现大多数文章都没有针对Eclipse做第一个入门工程...

GoodIdea 2661

使用mock进行单元测试

在service层,使用mock来测试代码。而不再使用Juint测试 JUint是java单元测试的框架,已经在Eclipse中默认的安装。目前主流的有JUnit3和JUnit4.JUint3中,测试用例需要继承TestCase类,JUint4中,测试用例无需继承TestCase类,只需要使用@Test等注解。 JUint4主要通过注解的方式来识别测试方法。目前支持的主要注解有: @Befo

u011393781的博客 7354

Devops学习实践(六) Eclipse集成TestNg,mock编写单元测试

单元测试也是开发中面临的一个重要工作,在本章里,将介绍如何在eclipse中集成testng,并使用Powermock编写测试代码,测试静态类和静态方法。

csolo的博客 1444

junit 测试中各种断言用法

为什么需要单元测试 在开发软件的过程中,用户需要实际运行所编写的代码以确保程序的正确性。当软件变得越来越大,再去添加新的功能或做一些新的改动时,就很容易带来新的问题,甚至会使程序无法正常运行。然而要手动的运行代码,测试代码的可行性也是非常枯燥以及非常耗费时间的事情。 为了减少这种手动测试,可以通过创建单元测试来自动完成测试的工作。当修改代码或者添加新功能后,可以执行单元测试来保证代码运

chomo的专栏 2万+

Junit和EasyMock的使用

本文将介绍Junit和EasyMock结合进行复杂环境的模拟测试

JessenPan 1503

Java代码质量检查工具及使用案例

前言在现在的软件开发中,由于软件的复杂度越来越高,业务也覆盖很广,各个业务模块业务错综复杂。这样就需要我们需要团队开发,在我们团队中开发人员的经验、代码风格样式都不一致,以及缺乏统一的标准,从而导致我们的整个项目的的代码难以阅读,不便于后期维护。这几天在研究代码质量管理,根据在网上搜集的资料及跟前辈学的一点经验整理一下,有需要的同学们可以查看,也便于以后自己回顾。主要对下面的七块进行分析编码格式规范代码重复代码覆盖率依赖项分析复杂度监控Java模拟技术代码评审和重构接下来的使用Eclipse 插件来揭示这些

Firstlucky77的博客 2340

在Eclipse RCP开发中使用jMock

在做单元测试时,jMock可以非常方便的构建出mock对象,大大提高写test case的时间。本文就谈谈如何在RCP开发中使用jMock做单元测试。1. 导入jMock包在Eclipse RCP开发,因为包之间的依赖是通过OSGi的完成的,所以要复杂一些。就好像jUnit就被做成了Eclipse下的一个Plugin, 所以我也同样使用屡试不爽的"Plug-in from existing JAR archives"。从jMock的网站上下载所有的jar packages(http://www.jmock.

I want to go Home Now!!! 2000

EasyMock教程–入门

在本文中,我将向您展示EasyMock是什么,以及如何使用它来测试Java应用程序。 为此,我将创建一个简单的Portfolio应用程序,并使用JUnit&EasyMock库对其进行测试。 在开始之前,让我们首先了解使用EasyMock的需求。 可以说,您正在构建一个Android移动应用程序来维护用户的股票投资组合。 您的应用程序将使用股票市场服务从真实服务器(例如NASDAQ)检索股票...

最佳 Java 编程 1494

Eclipse的Mockito模板

有时候,我想念树林里的树木-那是一段令人不安的长时间。 我最近才再次意识到这一点,在无数次中键入了一个更详细的模拟表达式。 有问题的语句是doAnswer(Answer)构造,使用涉及到的静态导入和泛型的东西进行编码总是很麻烦。 尽管我定期使用Eclipse Java模板生成例如循环,切换和其他构造,但我花了几年( 仅… )的想法自己为我每天使用的模拟表达式编写了其中的一些模板 。 毫不...

最佳 Java 编程 314
上一篇: [翻译]HbaseArchitecture
下一篇: 在Hadoop中使用MRUnit进行单元测试
gpcuster
博客等级 码龄21年 297粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值