目标测试代码
package jmockit.target;
public class StaticAccess {
private static int memberCounts;
private static int getMemberCounts() {
return memberCounts;
}
/**
* 把传入的count和内部定义的私有int类型的memberCounts的值相加,返回相加的结果。
*
* @param count
* @return
*/
public static int sumInternalCounts(int count) {
int myCount = getMemberCounts();
return myCount + count;
}
}
Mock代码
package jmockit.sample;
import jmockit.target.StaticAccess;
import junit.framework.Assert;
import mockit.Expectations;
import org.junit.Test;
/**
* 有时我们需要在测试mock对象前对某些静态成员变量进行初始化的设值,但是这些静态成员变量往往是私有的,有时某些方法的调用中会间接调用静态私有方法。
* 如何对这些静态私有变量或者静态私有方法进行mock呢?以下示例将示范这些用法
*
* @author Ginge
*
*/
public class StaticAccessTest {
@Test
/*
* 对mock类型的静态私有成员变量进行设值的示例
*/
public void privateAccessField() {
// 注意:这里使用了动态部分mock
new Expectations(StaticAccess.class) {
{
// 对私有int类型的memberCounts进行设值
this.setField(StaticAccess.class, "memberCounts", 2);
}
};
Assert.assertEquals(5, StaticAccess.sumInternalCounts(3));
}
@Test
/*
* 对mock类型的静态私有成员方法进行mock的示例
*/
public void privateAccessMethod() {
// 注意:这里使用了动态部分mock
new Expectations(StaticAccess.class) {
{
// 对私有方法进行mock
this.invoke(StaticAccess.class, "getMemberCounts");
result = 2;
}
};
Assert.assertEquals(5, StaticAccess.sumInternalCounts(3));
}
@Test
/*
* 直接对整个静态方法进行mock
*/
public void staticAccessMethod() {
// 注意:这里使用了动态部分mock
new Expectations(StaticAccess.class) {
{
StaticAccess.sumInternalCounts(3);
result = 7;
}
};
Assert.assertEquals(7, StaticAccess.sumInternalCounts(3));
}
}
分享到:
相关推荐
可以用来Mock JAVA代码中的静态方法
本示例程序利用PowerMock演示了如何对静态方法和私有方法进行单元测试(其它模拟单元测试技术无法实现)。
vue-cli-plugin-mock 用于本地模拟数据功能的软件包 简单的写作(Express.js风格) 观看文件更改 自动重装模拟服务器 支持esm / cjs样式模块 安装 yarn add vue-cli-plugin-mock 用vue-cli3安装 vue add vue-cli-...
Laravel开发-laravel-redis-mock 这个Laravel包为您的测试提供了一个redis模拟
开源项目-Code-Hex-funcy-mock.zip,funcy-mock generates mock file from interface go file
Jmockit用法示例,对各种函数(公有、私有、静态、final、无参数、带参数、接口)进行mock的方法
server-mock, a simple mock server for ajax testing
2017-2020 CFA Level III mock题合集
info: { name: 'Mock API', description: 'Mock API for vue-typescript-admin-template.', version: '1.0.0'},paths: { get: [ '/mock-api/v1/articles', '/mock-api/v1/articles/:id', '/mock-api/
jest-google-maps-mock Google Map的Jest Mock安装// with npmnpm install -D jest-google-maps-mock// with yarnyarn add -D jest-google-maps-mock如何使用import createGoogleMapsMock from 'jest-google-maps-...
管理系统系列--基于react + ant-design + dva + Mock 企业级后台管理系统最佳实践
okhttp-json-mock:帮助你为Okhttp和Retrofit模拟json格式的数据
返回随机mock数据监听mock文件变更, 自动重启服务使用# install dependenciesnpm install# serve with hot reload at localhost:8080npm run dev# start mock-servicenpm run mock项目目录|---- mock // mock文件夹...
开源项目-goware-httpmock.zip,httpmock - a simple way to mock 3rd party services in your tests
在进行涉及到Redis的单元测试时,通常会选择使用embeded-redis或redis-mock。相比于embeded-redis,redis-mock具有更高的稳定性和可靠性,embeded-redis在启动过程中可能会失败,且错误信息不明确。此外,redis-mock...
C Mock-Google Mock扩展 概述 C Mock是的扩展,允许函数。 仅支持全局(非静态)函数模拟。 这既不是Google Mock的补丁,也不是它的分支。 这只是一组标题,提供了一种在测试中将工具用于具有模拟功能的模拟方法的...
模块化配置mock,结合mock-api,axios,可应用于实际项目中;前后端分离开发之后,有了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....
此资源仅是为了配合iView-Admin正常运行而创建的Express服务端,取代了iView-Admin中原有Mock,便于和我一样的菜鸟观察iView-Admin与服务器之间的按口。 使用方法为:首先要有Express环境。下载此压缩包后先解压,...
节点-cassandra-driver-mock cassandra-driver 节点模块的基本模拟。 真的,它只是记录了请求和连接的总数。 安装 npm install -save-dev cassandra-driver-mock 用法 // Mock must be required before cassandra-...