JMockit Quick Tutorial
https://github.com/ajermakovics/eclipse-jmockit-assist/wiki/JMockit-Quick-Tutorial-%28Cheat-sheet%29
1. 用new MockUp方法打桩
import mockit.Mock;
import mockit.MockUp;
import mockit.Mockit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class BizTest2 {
@Before
public void setUp() throws Exception {
new MockUp<Common>(){
//mock 构造方法
@Mock
public void $init(){
System.out.println("Mock init()");
}
//mock public 方法
@Mock
public void doA(){
System.out.println("mock doA()");
}
//mock public static 方法
@Mock
public void doB(){
System.out.println("mock doB()");
}
//mock private 方法 这里也需声明为public
@Mock
public void doC(){
System.out.println("mock doC()");
}
};
new MockUp<Single>(){
//mock单例方法
@Mock
public void doA(){
System.out.println("mock single doA()");
}
};
}
@After
public void tearDown() throws Exception {
Mockit.tearDownMocks();
}
@Test
public void testCallCommon() {
new Biz().callCommon();
}
@Test
public void testCallSingle() {
new Biz().callSingle();
}
}
2. 用Mockit.redefineMethods方法打桩
import mockit.Mockit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class BizTest3 {
@Before
public void setUp() throws Exception {
Mockit.redefineMethods(Common.class, MockCommon3.class);
Mockit.redefineMethods(Single.class, MockSingle3.class);
}
@After
public void tearDown() throws Exception {
Mockit.tearDownMocks();
}
@Test
public void testCallCommon() {
new Biz().callCommon();
}
@Test
public void testCallSingle() {
new Biz().callSingle();
}
}
class MockCommon3 {
public void $init(){
System.out.println("mock constructor");
}
public void doA(){
System.out.println("mock doA");
}
public void doB(){
System.out.println("mock doB");
}
public void doC(){
System.out.println("mock doC");
}
}
class MockSingle3 {
public void doA(){
System.out.println("mock single doA");
}
}
3. 用Mockit.setUpMock方法打桩
import mockit.Mock;
import mockit.MockClass;
import mockit.Mockit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class BizTest4 {
@Before
public void setUp() throws Exception {
Mockit.setUpMock(Common.class, MockCommon4.class);
Mockit.setUpMock(Single.class, MockSingle4.class);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testCallCommon() {
new Biz().callCommon();
}
@Test
public void testCallSingle() {
new Biz().callSingle();
}
}
@MockClass(realClass = Common.class)
class MockCommon4 {
@Mock
public void $init(){
System.out.println("mock constructor");
}
@Mock
public void doA(){
System.out.println("mock doA");
}
@Mock
public void doB(){
System.out.println("mock doB");
}
@Mock
public void doC(){
System.out.println("mock doC");
}
}
@MockClass(realClass = Single.class)
class MockSingle4 {
@Mock
public void doA(){
System.out.println("mock single doA");
}
}
分享到:
相关推荐
- `Junit使用.ppt`:可能是一个关于JUnit基本用法和如何与JMock结合的演示文稿。 通过学习这些文档,开发者可以更全面地了解如何有效地使用JMock进行单元测试,提升测试覆盖率和代码质量。如果你在学习过程中遇到...
在 JUnit 中,你可以使用 `jmock-junit3` 或 `jmock-junit4` 包,它们提供了一个 JUnit Rule,使得在测试类中使用 JMock 更加方便。 6. **版本信息** 这个压缩包中的 "jmock-1.2.0-jars" 提供的是 JMock 1.2.0 ...
在本文中,我们将深入探讨Jmock2.6的核心特性、使用场景以及如何在实际项目中应用。 **一、Jmock2.6概述** Jmock是一款开源的Java库,它基于JUnit构建,专门设计用来创建和验证对象交互。Jmock2.6是该库的一个版本...
JMock 是一个流行的开源测试框架,专为Java开发者设计,用于模拟对象的行为,特别是在单元测试中。它允许程序员在不依赖真实对象的情况下测试代码,提高了测试的效率和隔离性。这篇详尽的讨论将深入JMock的核心概念...
jMock 2.5.1.chm文件是一个帮助文档,包含了jMock框架的详细使用指南。通过这个文档,开发者可以学习如何创建和配置模拟对象,设置和验证期待,以及如何在JUnit等测试框架中集成jMock。 首先,创建模拟对象通常需要...
JMock 是一个Java平台上的单元测试框架,专门用于模拟对象,以便在测试过程中控制和验证对象的行为。它基于EasyMock库,但提供了更强大的功能,尤其是对于处理复杂交互和顺序的场景。JMock使得开发者可以在不依赖...
jMock是一个强大的Java模拟框架,它在软件开发的单元测试阶段扮演着至关重要的角色。jMock 2.5.1是该框架的一个版本,它提供了丰富的功能,帮助开发者创建虚拟对象,模拟复杂的交互行为,以便对代码进行独立验证。...
`jmock`是Java平台上的一个模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以便能够隔离测试并精确地指定期望的交互。下面我们将深入探讨`jmock`的关键概念和功能。 ### 1. 模拟框架概述 `jmock`属于...
《JMock Cookbook资源整合》是关于Java测试领域中JMock库使用的详细指南,旨在帮助开发者更好地理解和运用这个强大的模拟框架。JMock是一个用于Java应用程序单元测试的工具,它允许程序员模拟对象的行为,以便在孤立...
1. **创建模拟对象**:使用`Mockery`类来创建模拟对象,如`Mockery context = new Mockery(); MyInterface mock = context.mock(MyInterface.class);` 2. **定义行为**:通过`expect`方法来设定模拟对象的预期行为...
为了结合`FactoryBean`和Jmock,我们需要在`FactoryBean`的实现中使用Jmock来动态创建模拟对象。以下是一个简单的示例: ```java public class MockingFactoryBean implements FactoryBean<Object> { private ...
而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...
以下是一个使用 jMock 的简单示例,展示了如何为 `UserService` 类编写单元测试: ##### 1. 实体类:`User` ```java package com.sarkuya.model; public class User { private String name; public User() {} ...
标题 "maven+jmock" 暗示了我们要讨论的是如何在 Maven 项目中使用 JMock 进行单元测试。Maven 是一个流行的构建自动化工具,用于管理项目的构建、依赖和文档,而 JMock 是一个 Java 代码模拟库,允许开发者在测试中...
1. **模拟(Mock)**:一个模拟对象会记录其方法被调用的方式,并允许你在测试中验证这些调用。 2. **期待(Expectation)**:在测试中,你可以设定对模拟对象的期望调用,包括调用的方法、参数和调用顺序。 3. **...
在 JMock 中,如果我们要模拟一个没有接口的类,可以使用 CGLIB 来创建该类的子类。首先,你需要在项目中引入 CGLIB 的依赖,这里提供的 `cglib-full-2.0.jar` 和 `jmock-cglib-1.0.1.jar` 文件包含了 CGLIB 的相关...
`jmock-2.6.0-RC2-javadoc.zip`和`jmock-2.5.1-javadoc.zip`包含的是`jmock`的API文档,可以帮助开发者理解和使用其API。`jmock-2.6.0-RC2-jars.zip`和`jmock-2.5.1-jars.zip`则包含了相应的库文件,可以直接在项目...