`

mockito模拟私有方法

 
阅读更多
用到powmock
注意点:
1 @RunWith(PowerMockRunner.class)
2 @PrepareForTest(PrivateObject.class)
3   PrivateObject obj = PowerMockito.spy(new PrivateObject()); 这里用spy
4   PowerMockito.when(obj, "name").thenReturn("private");  name是方法名



package com.eyu.ahxy.module.staticd;

public class PrivateObject {

	private String name() {
		return "test";
	}

	public String name2() {
		return name();
	}

}





package com.eyu.ahxy.module.staticd;

import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest(PrivateObject.class)
public class PrivateTest {

	@Test
	public void test1() throws Exception {
		PrivateObject obj = PowerMockito.spy(new PrivateObject());
		PowerMockito.when(obj, "name").thenReturn("private");
		String result = obj.name2();
		assertThat(result, equalTo("private"));
	}

}




powmock的依赖
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>
0
2
分享到:
评论

相关推荐

    利用PowerMock模拟静态方法和私有方法的示例

    PowerMock允许我们使用`@PrepareForTest`注解指定需要模拟的类,并通过`PowerMockito.mockStatic`或`Mockito.when`来模拟私有方法。 下面是一段使用PowerMock模拟静态方法和私有方法的示例代码: ```java import ...

    power mockito学习资料

    此外,PowerMockito还可以用来模拟私有方法。在某些情况下,如果一个方法的逻辑依赖于一个或多个私有方法,但我们在测试该方法时并不想关注这些私有方法的行为,那么我们可以使用PowerMockito来模拟这些私有方法。...

    基于Mockito和PowerMockito的Java单元测试指南.zip

    基于Mockito和PowerMockito的Java单元测试指南 ... 测试私有方法 静态方法的模拟 最终方法的模拟 内部类的模拟 3. 高级技巧 处理可变参数 父类属性的注入 统一模拟和存根的方式 异常处理与验证 4. 最佳实践

    powermock-mockito-junit-1.6.2.zip

    PowerMock是一个强大的扩展库,它允许开发者模拟静态方法、构造函数、final类和方法、私有方法、删除静态初始化器等,这些都是标准的Java mocking框架如Mockito无法做到的。PowerMock通过字节码操作(Bytecode ...

    powermock-mockito-junit-1.6.3.zip 当前最新版

    这些工具在Java开发中被广泛用于单元测试和模拟,尤其对于处理静态方法、构造器、final类和方法、私有方法等无法直接进行测试的情况。 PowerMock 是一个扩展了其他Mock框架(如Mockito)的库,它允许开发者模拟那些...

    mockito-package-private-class:Mockito 无法在扩展包私有类的公共类上创建模拟..

    在进行测试时,还可以考虑使用其他工具,如PowerMock,它扩展了Mockito的功能,能够模拟静态方法、构造函数、final类和方法,以及私有和包私有类。不过,使用PowerMock应当谨慎,因为过度依赖这类工具可能导致测试...

    PowerMock+Mockito-junit测试套件1.6.3版本

    PowerMock是一个扩展了其他Mocking框架(如EasyMock和Mockito)的库,它允许开发者对静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器进行模拟和mock。在传统测试框架中,这些通常是难以或无法测试...

    mockito单元测试

    但需要注意的是,尽管Mockito提供了强大的功能,它仍然存在一定的局限性,比如不能直接模拟私有方法等。 ##### 2.3 准备工作 要使用Mockito,首先需要将其添加到项目的依赖管理中。对于使用Maven的项目,可以在`...

    单元测试中PowerMock常用方法.

    在单元测试领域,PowerMock是一个强大的工具,它扩展了诸如Mockito等模拟框架的功能,允许开发者模拟静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器等。这一工具对于测试那些难以或者无法正常...

    java单元测试依赖jar和eclipse插件

    PowerMock是一个扩展了其他Mocking框架(如Mockito)的库,它可以模拟静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器。这样,即使被测试的类有难以控制的依赖,我们也能进行有效的单元测试。 ...

    Test-Driven-Development-with-Mockito_2013-11

    - 支持静态方法、私有方法和构造函数的模拟。 - 能够验证方法调用序列,包括方法调用的次数、顺序和参数匹配。 - 提供强大的匹配器(matchers)来处理复杂的参数匹配逻辑。 文档内容中还涉及到了一些关于书籍出版的...

    powermock单元测试

    4. **模拟私有方法**:首先,需要使用`PowerMockito.spy()`创建被测类的间谍对象。然后,使用`PowerMockito.when()`和`doReturn()`来模拟私有方法的行为。注意,调用私有方法通常需要使用`ReflectionUtils`类或`...

    单元测试模拟框架PowerMock.zip

    通过提供定制的类加载器以及一些字节码篡改技巧的应用,PowerMock 现了对静态方法、构造方法、私有方法以及 Final 方法的模拟支持,对静态初始化过程的移除等强大的功能。因为 PowerMock 在扩展功能时完全采用和被...

    Java mockito单元测试实现过程解析

    此外,如果需要 mock 静态方法、私有函数或者构造函数,可以结合使用 PowerMock 这个扩展库。它允许你创建更复杂的 mock 场景,但使用时需谨慎,因为过度使用 mock 可能会掩盖潜在的问题。 总的来说,Mockito 为 ...

    PowerMock学习指南

    5. **模拟私有方法和内部类**:PowerMock也可以模拟私有方法和内部类的行为,这对于测试私有逻辑很有帮助。 ### 使用PowerMock的最佳实践 1. **最小化模拟**:尽可能只模拟必要的部分,避免过度模拟,因为这可能会...

    powermock 资料_杂

    单元测试工具的需求日益增长,其中PowerMock作为一种强大的扩展工具,为JUnit和Mockito等框架带来了前所未有的能力,尤其在处理静态方法、构造方法、私有方法和final方法的模拟方面,展现出了卓越的表现。...

    powermock依赖jar文件.rar

    PowerMock是一个强大的Java单元测试框架,它扩展了如Mockito这样的工具,允许开发者模拟静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器。在Java开发中,有时我们需要对不可Mock的对象进行单元...

    PowerMock实战手册.pdf

    私有方法的测试是单元测试中一个较为复杂的问题,PowerMock提供了模拟私有方法的能力。 #### 业务代码 在业务代码中,可能需要直接测试私有方法以确保逻辑正确。 #### PowerMock测试 使用PowerMock可以测试那些...

    MockitoExample:Mockito 和 PowerMock 的示例项目

    PowerMock 是基于 Mockito 的扩展,它增加了对静态方法、构造函数、final 类和方法、私有方法、删除静态初始化器等难以模拟情况的支持。这对于测试那些具有紧密耦合或者使用了不可变类、静态方法或反射的代码非常...

Global site tag (gtag.js) - Google Analytics