利用创建JMock模拟session,packet等必要的类。并构建模拟类虚拟的返回值。执行HANDLER方法,截取方法参数来检测程序正确性...

本文主要是介绍利用创建JMock模拟session,packet等必要的类。并构建模拟类虚拟的返回值。执行HANDLER方法,截取方法参数来检测程序正确性...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需要的几个包. 只是编译时的lib,方在文件夹compile-lib中:
两个简单的例子:


1、测试DAO方法:
思路:创建一个测试数据(不会重复创建),在测试环境中跑DAO方法,然后断言结果。

MailDAOTestCase.java:


INIT_MAIL = “xxx”; 是初始库表测试数据的SQL。

在执行每一个Test时总会先执行@before方法,执行完毕后测试方法后再执行@After方法

该方法测试mailDAO查询收邮件总量

Assert断言其值总是大于0的。

2、 测试Handler方法
思路: 利用创建JMock模拟session,packet等必要的类。并构建模拟类虚拟的返回值。执行HANDLER方法,截取方法参数来检测程序正确性。(现在做的是截取session.send()方法的Packet参数,测试协议格式)
MailHandlerTestCase.java:


context是JMock的对象,主要由它负责创建虚拟对象。

a、模拟一个packet对象


模拟返回值:
设置一个Expectations

执行一次(packet)的getInt()方法;将(放回(-1))//serial
b、测试参数

执行一次(session).send(packet);方法时,将适配以下规则



该方法抛出异常时返回:“("PacketMatcher : 协议返回格式错误"); ”测试失败提醒。



总结:
使用junit+jmock可以方便的使用以下特性:
1、 测试方法执行结果返回值;
2、 模拟目标方法所需参数;
3、 检测目标方法内部生成对象的合法性(pt = new Packet();.session.send(pt););

这篇关于利用创建JMock模拟session,packet等必要的类。并构建模拟类虚拟的返回值。执行HANDLER方法,截取方法参数来检测程序正确性...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/655033

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端