用@spy模拟真实对象的部分行为

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.

时间: 2024-10-13 16:21:30

用@spy模拟真实对象的部分行为的相关文章

测试模拟真实网络环境方法

http://jingyan.baidu.com/article/09ea3ede38c295c0aede3926.html 我们的项目,可能会涉及到各种网络环境,比如通过家庭宽带接入.通过手机接入,这些环境相对于我们测试时候使用的网络环境要复杂的多,如何模拟现网可能出现的各种网络情况,使得我们的程序,在各种环境下都能够正常的运行,是我们需要解决的难题. 工具/原料 netem和tc netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域

实验室测试模拟真实网络环境方法

http://jingyan.baidu.com/article/09ea3ede38c295c0aede3926.html 我们的项目,可能会涉及到各种网络环境,比如通过家庭宽带接入.通过手机接入,这些环境相对于我们测试时候使用的网络环境要复杂的多,如何模拟现网可能出现的各种网络情况,使得我们的程序,在各种环境下都能够正常的运行,是我们需要解决的难题. 工具/原料 netem和tc netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域

模拟真实物体运动的js动画库插件-Anima

Anima是一款可以同时控制许多对象进行动画的js插件.并且每一个对象都有它们各自的质量和密度以模拟现实生活中的物体. CSS3动画有一些限制,最主要的是你不可以真正完全的控制它们.如果不使用一些技巧的话,你几乎不可能停止动画的过渡. Anima是一个基本的物理基础js动画库框架.你可以通过它很容易的创建现实生活中的物体运动动画.Anima经过压缩后只有5K大小. 在线演示:http://www.htmleaf.com/Demo/201502041327.html 下载地址:http://www

Jmeter(五十)_性能测试模拟真实场景下的用户操作

概述 我们在做性能测试的时候,不同的视角看到的结果都不一样. 例如响应时间 用户通过客户端向服务端发出请求的时间为: T1服务端接收到请求,处理该请求的时间为:T2服务端返回数据给客户端时间为: T3客户端接收到响应数据,处理数据呈现给用户时间为:T4 从系统视角来看:系统的响应时间Ts= T1+T2+T3.该时间没有包括客户端对数据处理并呈现的时间T4 从用户视角来看:用户眼中的的响应时间:Tu = T1+T2+T3+T4.用户通过客户端发出业务请求,到客户端展现相应的请求结果,这个过程的时间

C#使用进度条,并用线程模拟真实数据 ProgressBar用法(转)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; namespace jmyd.form { public partial class

模拟Select-Options对象实现多项数据输入功能

SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF } .L0S31 { font-style: italic; color: #808080 } .L0S32 { color: #3399FF } .L0S33 { color: #4DA619 } .L0S52 { color: #0000FF } .L0S55 { color: #800080 } .L0S7

用POP动画模拟真实秒钟摆动效果

静态图: 动画图: 此处用到了POP中的Spring系列动画,现提供源码如下: SecondClockView.h 与 SecondClockView.m // // SecondClockView.h // YouXianMingClock // // Created by YouXianMing on 14-10-12. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h> @

内网漫游-模拟真实环境【二】

上篇讲到了我们已经拿到了内网192.168.1.123服务器 拿到192.168.1.123服务器后 要进行内网漫游 需要挂代理 当我们使用菜刀进行信息收集时,发现权限不够,这里就需要提权了 同时发现192.168.1.123开放了3389,445端口,我们可以使用溢出进行提权 这里对挂代理 提权及445端口的入侵就不过多描述了,可以看我之前的文章 https://www.cnblogs.com/G-Shadow/p/10965035.html 这里可以使用之前的注入点进行添加账户,并加入管理员

springboot2.0入门(四)----mock模拟测试+单元测试

一.本节主要记录模拟测试.单元测试: 二.mock 测试 1.1什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象.比如:对象B依赖于对象A,但是A代码还没写是一个空类空方法不能用,我们来mock一个假的A来完成测试. /** * @author Levi * @date 2019/10/4 21:09 */ //@Transactional @Slf4j @SpringBootTest public clas