我正在從我正在進行的項目中刪除Powermock,所以我試圖用Mockito(mockito-core-2.2.28)重寫一些現有的單一測試。模擬Mockito 2的最終課程
當我運行測試,我有以下錯誤:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class com.ExternalpackagePath.Externalclass
Mockito cannot mock/spy because :
- final class
我知道這個問題已經被問(How to mock a final class with mockito,Mock objects calling final classes static methods with Mockito),但我沒有找到我要找的答案對於。
這裏是我的代碼的摘錄:
public class MyClassToTest extends TestCase {
private MyClass myClass;
@Mock private Externalclass ext; // This class is final, I would like to mock it
@Override
protected void setUp() throws Exception {
MockitoAnnotations.initMocks(this); // <<<< The exception is thrown here
ext = Mockito.mock(Externalclass.class);
}
}
作爲文檔的Mockito中提到(https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2,§Mock的unmockable),我增加了org.mockito.plugins.MockMaker文件。這是我的項目的樹:
- 項目
- SRC
- com.packagePath.myPackage
- myClass的
- com.packagePath.myPackage
- 測試 個
- com.packagePath.myPackage
- myClassToTest
- 資源
- 的Mockito的擴展
- org.mockito.plugins.MockMaker
- 的Mockito的擴展
- com.packagePath.myPackage
- SRC
我還試圖把「資源」目錄中的「SRC」,在一個名爲「測試」子目錄,但結果還是一樣。
我以爲Mockito v2可以嘲笑最後的結局。有人知道這裏缺少什麼嗎?
謝謝!
該文件必須命名爲org.mockito.plugins.MockMaker,而不是org.mockito.plugins。 –
Woops,對不起,我在複製/過去時忘記了行結束,文件的名稱寫在我的案例中。 我的不好!我編輯了文字說明 – Ptiseb