Mockito与 PowerMock 版本对应关系

问题:java.lang.ClassNotFoundException: org.mockito.exceptions.Reporter
1. 我的jar版本 与 问题解决

我的jar版本:

 mockito-core: 2.8.9
 powermock-api-mockito:1.7.4
 powermock-module-junit4:1.7.4

问题解决:

解决方案:powermock-api-mockito 改为 powermock-api-mockito2
powermock-api-mockito 支持 mockito 1.x
powermock-api-mockito2 支持 mockito 2.x
2. 问题排查过程:
2.1 检查版本对应关系

怀疑是版本问题,所以在官网找到了下图:版本对应关系
在这里插入图片描述
对照图片上,并木有什么问题。

2.2 检查是否缺少jar依赖

在这里插入图片描述
PowerMock 支持 EasyMock 和 Mockito 框架,使用需要依赖 api 和 测试框架。 这点上也没问题,三个依赖都在。

2.3 在Mockito的Maven设置里有所发现

在这里插入图片描述
powermock-api-mockito 支持 mockito 1.x,并且PowerMock 2版本会被drop掉。 我mockito用的2.8.9,api却用的powermock-api-mockito,明显就对应不上。
在这里插入图片描述
powermock-api-mockito2 支持 mockito 2.x。换个jar,问题解决。

 mockito-core: 2.8.9
 powermock-api-mockito2:1.7.4
 powermock-module-junit4:1.7.4
3. 参考资料

PowerMock官方文档:https://github.com/powermock/powermock/wiki

Spring Boot是一个非常流行的Java框架,MockitoPowerMock是两个常用的Java测试框架。集成MockitoPowerMock可以帮助我们更好地进行单元测试和集成测试。下面是Spring Boot集成MockitoPowerMock的步骤: ### 1. 添加依赖 在pom.xml中添加以下依赖: ``` <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>3.10.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>2.0.9</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>2.0.9</version> <scope>test</scope> </dependency> ``` ### 2. 编写测试类 编写需要测试的类和测试类,例如: ``` @Service public class UserService { @Autowired private UserRepository userRepository; public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } } @RunWith(PowerMockRunner.class) @PrepareForTest(UserRepository.class) public class UserServiceTest { @InjectMocks private UserService userService; @Mock private UserRepository userRepository; @Test public void testGetUserById() { Long id = 1L; User user = new User(); user.setId(id); user.setName("MockitoTest"); Mockito.when(userRepository.findById(id)).thenReturn(Optional.of(user)); User result = userService.getUserById(id); Assert.assertEquals(result.getName(), "MockitoTest"); } } ``` ### 3. 运行测试 运行测试类,如果测试通过,则说明MockitoPowerMock已经成功集成到Spring Boot中。 以上是Spring Boot集成MockitoPowerMock的基本步骤。需要注意的是,MockitoPowerMock虽然可以帮助我们进行更好的测试,但是过度使用也会导致测试变得复杂和难以维护,因此需要谨慎使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值