目标测试代码
package jmockit.target;
/**
* 示例一个公共方法内部调用了一个私有方法;示例私有成员变量的设值。
*
* @author Ginge
*
*/
public class InstanceInternalAccess {
private int memberCounts;
private int getMemberCounts() {
return this.memberCounts;
}
/**
* 把传入的count和内部定义的私有int类型的memberCounts的值相加,返回相加的结果。
*
* @param count
* @return
*/
public int sumInternalCounts(int count) {
int myCount = this.getMemberCounts();
return myCount + count;
}
}
mock代码
package jmockit.sample;
import jmockit.target.InstanceInternalAccess;
import junit.framework.Assert;
import mockit.Expectations;
import mockit.Mocked;
import org.junit.Test;
/**
* 有时我们需要在测试mock对象前对某些成员变量进行初始化的设值,但是这些成员变量往往是私有的,有时某些方法的调用中会间接调用私有方法。
* 如何对这些私有变量或者私有方法进行mock呢?以下示例将示范这些用法。
*
* @author Ginge
*
*/
public class PrivateAccessTest {
private @Mocked
InstanceInternalAccess instanceInternalAccess = null;
@Test
/*
* 对mock类型的私有成员变量进行设值的示例
*/
public void privateAccessField() {
// 注意:这里使用了动态部分mock
new Expectations(instanceInternalAccess) {
{
// 对私有int类型的memberCounts进行设值
this.setField(instanceInternalAccess, "memberCounts", 2);
}
};
Assert.assertEquals(5, instanceInternalAccess.sumInternalCounts(3));
}
@Test
/*
* 对mock类型的私有成员方法进行mock的示例
*/
public void privateAccessMethod() {
// 注意:这里使用了动态部分mock
new Expectations(instanceInternalAccess) {
{
// 对私有方法进行mock
this.invoke(instanceInternalAccess, "getMemberCounts");
result = 2;
}
};
Assert.assertEquals(5, instanceInternalAccess.sumInternalCounts(3));
}
}
分享到:
相关推荐
使用"Android-okhttp-json-mock",你可以创建一个本地的mock服务器,这个服务器会响应你定义的特定URL,返回你想要的json数据。这在单元测试、集成测试或者在没有网络环境时都非常有用。你可以设置不同的HTTP方法...
本项目将介绍如何使用Objective-C的测试框架和第三方库来创建和使用Mock对象,并提供一些示例代码。 **适用人群:** - Objective-C开发者,特别是那些进行单元测试的开发者。 - 对软件测试和单元测试有一定了解,但...
struts-junit spring-mock spring-test junit等的javadoc.jar格式的API文档,直接导入Eclipse/MyEclipse/Netbeans等IDE即可实现快速API查询。 包含以下文件: File name -------------------------------------- ...
3. **文档记录**:为了团队协作,需要记录mock规则,方便其他成员理解和使用。 总之,`xe-ajax-mock`是一个强大的工具,帮助开发者在前后端分离的环境中快速进行前端开发,降低对后端的依赖,提升工作效率。通过...
使用 `httpmock-master` 文件中的源代码,开发者可以深入学习如何配置和使用 HttpMock。该项目通常包含示例代码、文档和测试用例,这些都是理解和掌握 HttpMock 功能的关键资源。 总的来说,Goware-HttpMock 是一个...
vue-cli-plugin-mock 用于本地模拟数据功能的软件包 简单的写作(Express.js风格) 观看文件更改 自动重装模拟服务器 支持esm / cjs样式模块 安装 yarn add vue-cli-plugin-mock 用vue-cli3安装 vue add vue-cli-...
mockjs在线使用安装(纱线或npm) 节点版本: > = 12.0.0 版本号: > = 2.0.0 yarn add mockjs# ornpm i mockjs -Syarn add vite-plugin-mock -D# ornpm i vite-plugin-mock -D例子运行示例 # ts examplecd ./...
在使用`laravel-redis-mock`之前,你需要将它添加到项目的Composer依赖中。在项目根目录下的`composer.json`文件中,加入如下代码: ```json "require-dev": { "mockery/mockery": "^1.4", "predis/predis": "^...
C Mock-Google Mock扩展 概述 C Mock是的扩展,允许函数。 仅支持全局(非静态)函数模拟。 这既不是Google Mock的补丁,也不是它的分支。 这只是一组标题,提供了一种在测试中将工具用于具有模拟功能的模拟方法的...
4. **易于集成**:由于loglevel-plugin-mock是基于loglevel设计的,所以它能无缝地与已使用loglevel的项目结合。只需要简单的配置,就可以让测试环境的日志行为符合预期。 在实际项目中,我们可以通过以下步骤来...
React-native-mock-render 一个分叉,用于渲染组件 要求 Node.js 4+ 最新版本的react-native 安装 npm i react-native-mock-render --save-dev /* file-that-runs-before-all-of-my-tests.js */ // This will ...
本篇文章将深入探讨如何使用Node.js来创建一个简单的数据Mock服务器。 首先,我们需要安装Node.js环境,它是搭建Mock服务器的基础。确保你的系统上已经安装了最新版本的Node.js,如果没有,可以访问...
下面我们将深入探讨funcy-mock的工作原理、应用场景以及如何使用它。 首先,让我们理解Go语言中的接口。在Go中,接口是一组方法签名的集合,任何类型只要实现了接口所定义的所有方法,就被称为实现了该接口。接口...
可以用来Mock JAVA代码中的静态方法
返回随机mock数据监听mock文件变更, 自动重启服务使用# install dependenciesnpm install# serve with hot reload at localhost:8080npm run dev# start mock-servicenpm run mock项目目录|---- mock // mock文件夹...
为了解决这个问题,开发者通常会使用像`redux-mock-store`这样的模拟存储库。 `redux-mock-store`是一个专门为Redux设计的模拟存储,它的主要目的是简化对Redux应用的单元测试和集成测试。它允许你在不实际部署完整...
-mock fork自 ,使用方法和Mock.js一致,用于javascript模拟数据生成,它可以拦截XHR和fetch请求,并返回自定义的数据类型。并且还支持主流小程序(微信,支付宝) ,头条,百度)。 为什么有Better-Mock? Mock....
xe-ajax-mock也兼容fetch API,这意味着开发者可以使用fetch语法进行数据请求,并同样能得到模拟数据的响应。 最后,"xe-mock"这个标签可能是指xe-ajax-mock插件本身,或者是与之相关的其他模拟工具或框架。它可能...
使用 1. 添加依赖 mvn clean package install (deploy) -Dmaven.test.skip=true 编译安装依赖到本地/远程仓库 <groupId>com.cmt</groupId> <artifactId>dubbo-easy-mock <version>1.1.0 <groupId>org....
PowerMock允许我们使用`@PrepareForTest`注解指定需要模拟的类,并通过`PowerMockito.mockStatic`或`Mockito.when`来模拟私有方法。 下面是一段使用PowerMock模拟静态方法和私有方法的示例代码: ```java import ...