用@spy模拟真实对象的部分行为
2017-03-01 10:27
183 查看
1.说明在某些情况下,我们需要使用一个真实对象。但是,我们同时需要自定义该对象的部分行
为,此时用@spy 就可以帮我们达到这个目的。
2.用法:
categoryService = PowerMockito.spy(categoryService);
categoryService = Mockito.spy(CategoryService.class);
Foo mock = mock(Foo.class);
//Be sure the real implementation is 'safe'.
//If real implementation throws exceptions or depends on specific
state of the object then you're in trouble.
when(mock.someMethod()).thenCallRealMethod();
3.注:使用thenCallRealMethod 时,需要注意真实的实现部分是安全的,否则将会带来麻烦。
注意 Mock和spy用法的区别在于:当测试用例中需要使用某个对象的真实方法更多些时,
请使用spy,反之请使用Mock.
为,此时用@spy 就可以帮我们达到这个目的。
2.用法:
categoryService = PowerMockito.spy(categoryService);
categoryService = Mockito.spy(CategoryService.class);
Foo mock = mock(Foo.class);
//Be sure the real implementation is 'safe'.
//If real implementation throws exceptions or depends on specific
state of the object then you're in trouble.
when(mock.someMethod()).thenCallRealMethod();
3.注:使用thenCallRealMethod 时,需要注意真实的实现部分是安全的,否则将会带来麻烦。
注意 Mock和spy用法的区别在于:当测试用例中需要使用某个对象的真实方法更多些时,
请使用spy,反之请使用Mock.
相关文章推荐
- 在LoadRunner中模拟真实用户行为需要注意的方面
- 开发对象-关系数据库应用程序(第二部分)
- Guru of the Week 条款23:对象的生存期(第二部分)
- 仅在运行代码的特定部分时模拟特定用户
- C与C++部分不同(非面向对象部分)
- 简单函数对象取代默认排序准则,改变默认sort()的行为
- WPF/E CTP Quick Start - 第三部分:Canvas对象(翻译)
- 认识一个对象的真实面目(什么类)
- 事务对象模拟(sql)
- 硬件的模拟处理部分用软件来实现
- 路由模拟——论文算法设计部分(2)
- 面向对象程序设计实例——模拟网上购书的结帐功能
- 有学历没能力 部分大学生真实写照
- javascript教程 - 第四部分 关于form对象
- Javamail实现的匿名邮件,模拟邮件服务器发送行为
- 路由模拟——论文算法设计部分(3)
- 路由模拟——论文算法设计部分(4)
- ASP之对象总结(如果你使用过大部分,那么你的ASP功力应该是非常高的了)
- 用XMLHttpRequst对象实现真实的网页加载进度
- 通过Win API 模拟鼠标点击,使C# Java交互 (PART.1 C#部分)