这里要用到使用powerMock
注意点:
1 @RunWith(PowerMockRunner.class)
2 PowerMockito.mockStatic(StaticTest.class);
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.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
public class StaticTest {
@Test
public void test1() {
PowerMockito.mockStatic(StaticTest.class);
PowerMockito.when(StaticTest.static1()).thenReturn("static");
String result = StaticTest.static1();
assertThat(result, equalTo("static"));
}
public static String static1() {
return "test1";
}
}
powmock的maven依赖:
<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>
分享到:
相关推荐
本文将详细介绍如何利用PowerMock来模拟静态方法和私有方法,以便进行有效的单元测试。 PowerMock是一个强大的Java单元测试框架,它可以扩展其他流行的测试框架,如JUnit和TestNG。它的核心功能之一就是能够模拟...
Mockito 提供了 `mockStatic` 方法来模拟静态方法。使用这个方法,你可以指定静态方法在被调用时返回的值,或者设定特定的参数匹配器来决定何时返回特定的值。例如: ```java import static org.mockito.Mockito.*;...
PowerMockito是一个强大的Java单元测试框架,它扩展了其他如EasyMock等mock库的功能,能够模拟静态方法、构造函数、final类和方法、私有方法,甚至静态初始化器。这使得开发者能够在单元测试中隔离被测试对象,不受...
PowerMock是一个强大的扩展工具,它可以与Mockito、EasyMock等主流Mock框架结合,允许我们模拟静态方法、构造器、final类和方法、删除静态初始化器等。 标题“使用PowerMock来Mock静态函数”指的是如何利用...
Mockito 提供了许多实用的方法来模拟对象的行为,以便在测试中 isolating 依赖项。 Mockito 的基本使用 要使用 Mockito,首先需要添加 Maven 依赖项: ```xml <groupId>org.mockito <artifactId>mockito-all ...
11. **Mocking static methods**:Mockito 3.4.0及以上版本开始支持静态方法的模拟,这对于测试依赖于静态方法的代码非常有帮助。 12. **Mockito annotations**:通过注解如`@Mock`、`@Spy`、`@Captor`等,可以在...
- 模拟静态方法:这对于测试那些依赖静态方法的类非常有用,因为静态方法通常难以控制。 - 模拟final类和方法:这样即使被测试对象依赖的是final类或方法,也能进行模拟。 - 绕过构造器:可以创建不依赖真实构造器的...
基于Mockito和PowerMockito的Java单元测试指南 ... 静态方法的模拟 最终方法的模拟 内部类的模拟 3. 高级技巧 处理可变参数 父类属性的注入 统一模拟和存根的方式 异常处理与验证 4. 最佳实践
PowerMock是一个扩展了其他Mocking框架(如EasyMock和Mockito)的库,它允许开发者对静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器进行模拟和mock。在传统测试框架中,这些通常是难以或无法测试...
- **模拟静态方法**:PowerMock允许模拟静态方法的行为。 - **抑制静态块**:可以抑制类加载时执行的静态初始化块。 - **抑制超类构造函数**:在子类中忽略父类构造函数的行为。 - **抑制我们自己的构造函数**:...
PowerMock是一个强大的扩展库,它允许开发者模拟静态方法、构造函数、final类和方法、私有方法、删除静态初始化器等,这些都是标准的Java mocking框架如Mockito无法做到的。PowerMock通过字节码操作(Bytecode ...
Mockito的一个显著特点是支持对复杂场景的模拟,如模拟静态方法、构造函数等,这对于构建大型系统尤为重要。 ##### 2.2 新特性与限制 在Mockito 2.0及更高版本中,增加了许多新的特性,例如支持对final方法和静态...
在实际项目中,我们常常需要处理复杂的情况,比如模拟静态方法、模拟构造函数、模拟final类或方法等。Mockito对此提供了扩展支持,但需要注意,过度模拟可能会导致测试过于脆弱,所以要适度使用。 最后,Mockito与...
在单元测试领域,PowerMock是一个强大的工具,它扩展了诸如Mockito等模拟框架的功能,允许开发者模拟静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器等。这一工具对于测试那些难以或者无法正常...
PowerMock是一个扩展了其他Mocking框架(如Mockito)的库,它可以模拟静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器。这样,即使被测试的类有难以控制的依赖,我们也能进行有效的单元测试。 ...
9. **Mocking Static Methods**:Mockito 从 3.0 版本开始支持模拟静态方法,这在处理有静态依赖的代码时非常有用。 10. **Annotations**:Mockito 提供了一些注解,如 `@Mock`、`@Spy` 和 `@Captor`,它们简化了...
PowerMockito是一个强大的Java单元测试框架,它扩展了Mockito的功能,允许我们模拟静态方法、构造函数、final类和方法,以及私有方法。在Java开发中,有时我们需要测试那些依赖于不可控外部因素(如系统时间、静态...