使用PowerMockito模拟JUnit5中的静态方法

编程入门 行业动态 更新时间:2024-10-24 08:25:35
本文介绍了使用PowerMockito模拟JUnit5中的静态方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

需要在PowerMockito框架中使用JUnit5模拟静态方法的帮助.

Need help for Mocking Static methods using JUnit5 with PowerMockito framework.

​​ Powermock junit5和mockito2.x无法正常运行RunnerTestSuiteChunker找不到

import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import static org.mockito.Mockito.*; @PrepareForTest(EnvironmentUtils.class) @RunWith(PowerMockRunner.class) public class RuleControllerTest { @Before public void setup() { PowerMockito.mockStatic(EnvironmentUtils.class); } @Test public void test_rule_create_rule() throws IOException { when(EnvironmentUtils.isCF()).thenReturn(true); } }

和pom.xml

<!-- mvnrepository/artifact/org.mockito/mockito-core --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.23.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.4.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <version>5.4.2</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.4.2</version> <scope>test</scope> </dependency> <!-- mvnrepository/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>2.0.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>2.0.2</version> <scope>test</scope> </dependency>

我从这里关注了Junit5示例, 1) www.baeldung/junit-5 2) Junit5模拟静态方法

I followed Junit5 sample from here, 1) www.baeldung/junit-5 2) Junit5 mock a static method

但是面对一个问题,我知道Junit5有一个现有的 issue 使用powermock,但是任何人都知道使用powermock使用JUnit5模拟静态方法的任何其他方式.

But facing an issue as, I know there is an existing issue for Junit5 with powermock but any one knows any other way to Mock static methods using JUnit5 using powermock.

推荐答案

使用Mockito v 3.4.0,我们可以简单地使用 mockStatic()方法,而无需使用powermock库:

With mockito v 3.4.0 we can simply use mockStatic() method without powermock library :

try (MockedStatic mocked = mockStatic(Foo.class)) { mocked.when(Foo::method).thenReturn("bar"); assertEquals("bar", Foo.method()); mocked.verify(Foo::method); } assertEquals("foo", Foo.method());

最新文档和示例: javadoc. io/static/org.mockito/mockito-core/3.5.10/org/mockito/Mockito.html#static_mocks

更多推荐

使用PowerMockito模拟JUnit5中的静态方法

本文发布于:2023-10-31 07:24:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1545422.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:静态   方法   PowerMockito

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!