测试驱动开发-EasyMock
2011-02-21 09:35
183 查看
使用场合
实际对象的行为还不确定。实际的对象创建和初始化非常复杂。
实际对象中存在很难执行到的行为(如网络异常等)。
实际的对象运行起来非常的慢。
实际对象是用户界面程序。
实际对象还没有编写,只有接口等。
1.import static org.easymock.EasyMock.*; only non-internal, non-deprecated class
基本套路
create a Mock Object for the interface we would like to simulaterecord the expected behavior
switch the Mock Object to replay state.
将mock对象传递给target对象(多在setup和teardown中)
Verify mock
实现的功能
1.在record处记录函数的执行,并使用verify验证调用是否正确2.设置调用次数和返回值 andReturn 异常 andThrow
3.对同一方法设置不同的方法和异常
4.设置调用次数: range, 最少一次,任意次数
5.Strict Mock:测试methods的调用次数
6.当expected的参数是数组时,其使用equals()作为相等判断会出错,需要使用EasyMock predefined argument matchers
7.可以自定义arguments matchers
8.Reset()重新使用mock object
9. 当不关心调用次数时,可以使用Stub behavior
10.Nice Mocks:当mock出现错误行为时,不抛出异常,而是返回empty value
11.可以测试mock对象之间的调用次序(多线程)
12.Naming Mock Object:创建带名字的mock,在异常信息时可以显示
限制
Mock对象不能测试真实对象的equal hascode toString 函数相关文章推荐
- 测试驱动开发与EasyMock的使用
- 测试驱动开发
- 关于测试驱动开发
- 最佳实践:测试驱动开发全功略
- TestDrivenDevelopment 测试驱动开发
- 测试驱动开发例子学习-Using TDD with ADO.NET
- iOS尝试用测试驱动的方法开发一个列表模块【五】
- 测试驱动开发搜集
- 测试驱动开发实践-入门篇
- 测试驱动开发(TDD)
- Junit学习笔记之三:测试驱动开发
- 测试驱动开发系列之七--监视产品代码
- 在PHP中使用Mockery进行测试驱动开发(TDD) - 上
- 模型驱动与测试驱动相结合的软件开发过程
- 测试驱动开发(Test-Driven Development,TDD)
- [王垠系列]谈“测试驱动的开发”
- Android底层开发(二)之编写驱动测试程序 第五步
- 测试驱动开发(书评)
- 感悟测试驱动开发
- JUnit测试驱动开发学习笔记1