`Mockito`是很常用的測試工具,使用過程中可能會遇到下麵的問題: 問題重現: 引入該依賴到項目的maven配置如下: 測試代碼如下: 報錯信息如下: 這是因為低版本的 是不能 `final`類的。 解決方案: 改變 的版本,修改maven依賴如下: 重跑測試,問題解決! 歡迎訪問 "南瓜慢說 ...
Mockito
是很常用的測試工具,使用過程中可能會遇到下麵的問題:
Mockito cannot mock/spy because : - final class
問題重現:
引入該依賴到項目的maven配置如下:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.3.3</version>
</dependency>
測試代碼如下:
package com.pkslow.basic;
import org.junit.Assert;
import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class MockitoTest {
public static final class FinalPumpkin {
public String getName() {
return "pkslow.com";
}
}
@Test
public void test() {
FinalPumpkin pumpkin = mock(FinalPumpkin.class);
when(pumpkin.getName()).thenReturn("www.pkslow.com");
Assert.assertEquals("www.pkslow.com", pumpkin.getName());
}
}
報錯信息如下:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class com.pkslow.basic.MockitoTest$FinalPumpkin
Mockito cannot mock/spy because :
- final class
這是因為低版本的mockito
是不能mock
final
類的。
解決方案:
改變mockito
的版本,修改maven依賴如下:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>3.3.3</version>
</dependency>
重跑測試,問題解決!
歡迎訪問南瓜慢說 www.pkslow.com獲取更多精彩文章!
歡迎關註微信公眾號<南瓜慢說>,將持續為你更新...
多讀書,多分享;多寫作,多整理。