`
ginge
  • 浏览: 211824 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jmockit 的使用示例-10另一种基于状态的Mock,随穿随脱?

 
阅读更多

目标测试代码

package jmockit.target;

public class Constructor {

	private String memberId;

	public Constructor(String memberId) {
		this.memberId = memberId;
	}

	public String getRealName() {
		return "real_" + this.memberId;
	}

}

 

Mock代码
package jmockit.sample;

import jmockit.target.Constructor;
import junit.framework.Assert;
import mockit.Mock;
import mockit.Mocked;
import mockit.Mockit;

import org.junit.Test;

/**
 * 除了使用@MockUp的另外一种基于状态的mock测试的方式。
 * 
 * @author Ginge
 * 
 */
public class ConstructorTest2 {
	@Mocked
	private Constructor constructor = null;

	@Test
	public void mockConstructor() {

		// 可以在任意时候把Mock装置起来,不用的时候可以脱下来
		Mockit.setUpMock(Constructor.class, new MockedConstructor());

		// 触发构造方法的mock
		new Constructor("Constructor");
		Assert.assertEquals("mock_Constructor", constructor.getRealName());

		// 注意咯,擦亮眼睛了,现在开始脱了
		Mockit.tearDownMocks(Constructor.class);

		constructor = new Constructor("Constructor");
		// 看到了吧,看到真容了
		Assert.assertEquals("real_Constructor", constructor.getRealName());

	}

	/**
	 * MockedConstructor相当于一个标志,具体名称不重要,重要的要它里面被@Mock注解的方法。如果有方法被注解了@Mock,
	 * 并且恰好方法的签名又和Mockit.setUpMock中声明的类型中的某个方法一样,那么对应的方法就被Mock
	 * 为了方便才把这个类的声明放到ConstructorTest2里面的,其实这个类可以放到任何地方
	 * 
	 * @author Ginge
	 * 
	 */
	public static class MockedConstructor {

		private String memberId;

		@Mock
		public void $init(String memberId) {
			this.memberId = "mock_" + memberId;
		}

		@Mock
		public String getRealName() {
			return this.memberId;
		}
	}

}
 

分享到:
评论

相关推荐

    Mock是一个零侵入的服务端Mock平台,底层基于JVM Sandbox。相比于Fiddler、-mock-fe.zip

    Mock是一个强大的服务端模拟工具,它的核心特性是零侵入性,这意味着在你的实际项目代码中无需进行...而`mock-fe-master`中的前端代码则是实现这一功能的用户界面部分,通过它,开发者可以直观地管理和配置Mock规则。

    gmall2020-mock-log-2020-04-01.jar

    用户行为日志生成脚本

    前端开源库-mock-xhr

    总的来说,mock-xhr库为前端开发者提供了一种高效且灵活的手段,可以在离线环境中对使用AJAX的代码进行充分的测试,确保代码质量,提高开发效率。通过熟练掌握并应用这个库,开发者可以更好地应对各种复杂的前端应用...

    开源项目-Code-Hex-funcy-mock.zip

    Code-Hex-funcy-mock是一个开源项目,其主要功能是根据Go语言的接口(interface)文件自动生成模拟(mock)文件。在软件开发中,尤其是采用面向接口编程时,mock对象扮演着重要的角色,它允许开发者在测试时替换真实...

    node-mock-server, 基于文件的node REST API 模拟服务器.zip

    node-mock-server, 基于文件的node REST API 模拟服务器 node-mock-server基于文件的node REST API 模拟服务器 正在启动这里应用程序需要 node 6 或者更高版本。 对于 node ,请使用 node-mock-serv

    JMOCKIT mock 静态方法 单元测试

    可以用来Mock JAVA代码中的静态方法

    react-native-mock-render:react-native-mock的一个分叉

    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 ...

    Android代码-有了json-api-mock framework, 再也不用担心后端API还没开发好

    mock-api 原理 基于 OkHttp 的 Interceptor :如果目标url需要mock,则从本地(assets或sdcard)读取数据,否则继续向外发送请求。 使用 首先,在 build.gradle 中添加以下依赖: compile '...

    gmall2020-mock-db-2021-11-14.jar

    gmall2020-mock-db-2021-11-14.jar

    Android-okhttp-json-mock帮助你为Okhttp和Retrofit模拟json格式的数据

    使用"Android-okhttp-json-mock",你可以创建一个本地的mock服务器,这个服务器会响应你定义的特定URL,返回你想要的json数据。这在单元测试、集成测试或者在没有网络环境时都非常有用。你可以设置不同的HTTP方法...

    dubbo-easy-mock:针对Dubbo接口的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....

    Better-mock:从Mockjs分叉,生成随机数据和拦截ajax请求。 支持小程序

    Mock.js是一个很好的库,国内使用者众多,虽然该库几乎已经停止维护了,但是还是有很多使用者在提问题和PR,这些问题都得不到有效的解决。而且在当前时代下,Mock.js的内置工具,代码质量都明显很陈旧,所以better-...

    mock 测试.pptx

    Mock 测试是一种软件测试方法,旨在模拟一些难以构造或获取的对象,以便进行测试。在测试过程中,Mock 对象可以帮助开发者更好地测试单元测试、集成测试和系统测试。下面是 Mock 测试的详细介绍和 Fiddler ...

    Jmockit用法示例

    在`JmockitDemo`项目中,你将找到一个完整的示例,展示了如何将以上所有方法应用于实际的测试场景。这个项目包括了对不同类型的模拟方法的测试用例,有助于理解Jmockit的工作原理和使用方式。 通过熟练掌握Jmockit...

    前端开源库-loglevel-plugin-mock

    4. **易于集成**:由于loglevel-plugin-mock是基于loglevel设计的,所以它能无缝地与已使用loglevel的项目结合。只需要简单的配置,就可以让测试环境的日志行为符合预期。 在实际项目中,我们可以通过以下步骤来...

    xe-ajax-mock1.4.5.js

    在现代Web应用开发中,前后端分离是一种常见的架构模式,它允许前端开发者独立于后端进行界面和用户体验的优化,而无需等待后端接口的完成。`xe-ajax-mock1.4.5.js`是一个专注于这个场景的前端插件,主要用于模拟...

    jmockit总结

    JMockit 是一款 Java 语言的测试框架,主要用于模拟(mocking)和验证对象的行为,以便在单元测试中隔离被测试代码。它支持行为和状态的测试,这使得测试更加灵活和全面。以下是对 JMockit 的关键知识点的详细解释:...

    api-mock-util-v1.0.2

    一个简单好用的api-mock工具,模拟后台返回报文,方便前端开发!可注册接口。

    test.jmockit-0.998.jar包

    单元测试 mock jmockit包 JMockit 是一个轻量级的mock框架是用以帮助开发人员编写测试程序的一组工具和API

    vue+vue-router+resquirejs+xe-ajax+mock 项目例子

    在"cdn-mock-demo"这个项目实例中,我们可以预期它包含以下部分: 1. **项目结构**:通常会有一个`src`目录,包含`components`(存放Vue组件)、`routes`(定义Vue Router的路由配置)、`mock`(存放模拟数据和API...

Global site tag (gtag.js) - Google Analytics