Java中编写单元测试,复杂一些的技术包括Stub和Mock。如今的Mock技术真的是越来越成熟了,甚至在Mock的概念上衍生出了Virtual Mock的概念。目前很多Java项目编写单元测试都会涉及部分Virtual Mock的技术。
DJunit是基于JUnit开发的开源的测试框架,可以集成到Eclipse,支持很多Mock方法,支持测试覆盖率查看等等。详细的可以看http://en.wikipedia.org/wiki/DjUnit
下面的列表显示了DJunit对于Mock的支持。
Method Name
|
Contents
|
addReturnValue
|
为指定类的指定方法添加指定的返回值
|
setReturnValueAt
|
为指定类的指定方法在指定调用次数中设定指定的返回值
|
setReturnValueAtAllTimes
|
为指定类的指定方法在所有调用次数中设定指定的返回值
|
addReturnNull
|
为指定类的指定方法添加Null的返回值
|
setReturnNullAt
|
为指定类的指定方法在指定调用次数中添加Null的返回值
|
setReturnNullAtAllTimes
|
为指定类的指定方法在所有调用次数中添加Null的返回值
|
getArgument
|
取得指定类的指定方法所传入的参数
|
getCallCount
|
取得指定类的指定方法的调用次数
|
assertArgumentPassed
|
断言指定类的指定方法是否传入了指定的参数
|
assertCalled
|
断言指定类的指定方法是否被调用
|
assertNotCalled
|
断言指定类的指定方法是否没被调用
|
一个最简单的例子:
import
jp.co.dgic.testing.framework.DJUnitTestCase;
publicclass
HelloWorldTest
extends
DJUnitTestCase{
//omit
publicvoid
test001(){
System.out.println(
"[test001]"
);
HelloWorld.main(
null
);
}
publicvoid
test002(){
addReturnValue(
"HelloWorld"
,
"sayHello"
,
"GoodmorningWorld."
);
System.out.println(
"[test002]"
);
HelloWorld.main(
null
);
}
publicvoid
test003(){
addReturnValue(
"HelloWorld"
,
"sayHello"
,
"bye."
);
System.out.println(
"[test003]"
);
HelloWorld.main(
null
);
}
}
分享到:
相关推荐
此外,MockServer还支持WebSocket和TCP,适用于多种协议的模拟。对于敏捷开发团队来说,MockServer是一个非常有价值的工具,它能够提高开发效率,减少沟通成本,并确保在后端服务就绪前,前端代码和测试的进度不会被...
Mock平台则专门针对服务端接口进行模拟,能够更好地满足API开发和测试的需求,支持更复杂的服务逻辑和数据返回。 在提供的压缩文件`mock-fe-master`中,我们可以看到Mock的前端部分,可能是用于用户界面和交互的...
1. Magic Methods:Mock对象支持大多数魔术方法(如`__str__`, `__call__`等),可以通过设置这些方法的返回值来模拟特定行为。 2. Side Effects:可以为mock对象设置side effect,使其在调用时执行额外的操作。例如...
Classes contained in spring-mock.jar: org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi....
Mock技术在软件开发中扮演着重要的角色,尤其是在测试领域。它允许开发者在不依赖实际环境或第三方服务的情况下,创建模拟对象来代替真实组件,以便进行单元测试和集成测试。这样可以提高测试效率,减少测试复杂性,...
Moco Runner是Moco的命令行运行器,它可以让我们无需编写Java代码就能启动一个Mock服务器,这对于快速设置和使用Mock接口非常方便。 3. **配置文件`config.json`**: 这个文件用于定义Mock服务器的行为。在JSON...
在Linux系统管理中,`Mock`是一个非常有用的工具,尤其对于开发者和打包人员而言,它能够在隔离环境中构建RPM软件包。在CentOS 7环境下,`Mock`可以帮助我们在不干扰系统其他组件的情况下测试和构建RPM包。下面将...
Djunit不仅支持基本的单元测试,还引入了VirtualMock技术,以帮助开发者更有效地进行测试驱动开发(TDD)和行为驱动开发(BDD)。 1. **Junit测试框架** Junit是Java编程语言中最广泛使用的单元测试框架之一。它提供了...
同时,对于那些需要跨团队协作的大型项目,Mock也能帮助每个团队独立地进行工作,减少依赖冲突。 总之,`模拟mock.zip`提供的资源可能是帮助开发者理解和使用Mock技术的工具或文档,包括Mock的语法规范、配置方法等...
1. 数据类型丰富:支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。 2. 拦截 Ajax 请求:不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据。 Mock.js 还提供了多种占位符来生成...
- **精确匹配**:MockServer支持基于请求方法(GET、POST等)、URL、HTTP头部、查询参数、请求体等多方面的精确匹配,确保只有符合预期的请求才会触发预设的响应。 2. **Java命令启动MockServer**: - MockServer...
对于“支持http接口自由mock,可根据需要进行接口mock测试”这一主题,我们可以深入探讨一下HTTP接口Mocking的概念、重要性以及如何使用工具如Moco进行实践。 HTTP接口Mocking是软件开发过程中的一个重要环节,特别...
本文将深入探讨如何利用Python Django来创建一个MockServer,以支持restful风格的API。 1. **什么是MockServer** MockServer是一种模拟实际API行为的工具,它可以在真实的后端服务不可用或正在开发时,为开发者...
3. **动态响应**:除了静态响应,MockServer 还支持基于JavaScript的动态响应规则,可以根据请求的特定条件生成不同的响应。 4. **验证请求**:MockServer 可以验证接收到的请求是否符合预期,这对于测试非常有用,...
2. **实时更新**:PostMan支持组内共享,接口或数据格式变动时,可以通过分享Collection快速同步。 3. **远程访问**:Mock Server基于PostMan服务器,不受内网限制,允许远程开发。 4. **协作便捷**:创建和管理Mock...
Mock试题是模拟真实考试环境的练习题,对于CFA考生来说至关重要。它们可以帮助考生熟悉考试格式,了解题型分布,以及提高在有限时间内完成大量题目的能力。2017年CFA二级mock试题分为上午卷和下午卷,分别对应了考试...
* Import:支持导入之前捕获的 saz 或 farx 文件。 * 规则列表:添加的规则在此处展示;列表有 4 个字段分别是:if requests matches--- 这里显示的是匹配的条件、then response with--- 这里显示的是如果匹配条件,...
服务端Mock测试是一种在软件开发中广泛应用的技术,它允许测试工程师在没有依赖服务端的真实环境或者服务尚未完成时进行测试工作。Mock技术通过模拟真实的服务端行为,使得测试人员能够在本地模拟各种网络交互,从而...