問題描述
我有一個 Android Clean Architecture 項目用 Kotlin 編寫,包含 3 個模塊:
- 數據(Android 庫)
- domaine(Java 庫)
- 演示文稿(Android 應用程序)
這 3 個模塊每個都有用 junit 編寫的單元測試.但是對于 Kotlin,默認情況下每個類都是 final 的.我很快就遇到了問題:如何使用 mockito 模擬 final 類
現在可以使用 Mockito 2
可以通過 mockito 擴展機制通過創建包含一行的文件 /mockito-extensions/org.mockito.plugins.MockMaker
來完成:
mock-maker-inline
<塊引用>
此解決方案在數據模塊(Android 庫)和演示模塊(Android 應用程序)但不適用于我的域模塊(Java 庫).
我知道這個問題已經被問過了(如何模擬帶有 mockito 的 final 類,模擬對象調用 final使用 Mockito 類靜態方法),但我沒有找到我正在尋找的答案.
您可以默認使用內聯模擬方法,通過將您的 Gradle 依賴項從普通的 Mockito 依賴項更改:
編譯org.mockito:mockito-core:$mockito_version"
...到以下內容:
編譯org.mockito:mockito-inline:$mockito_version"
這樣您就不必依賴使用資源文件夾中的文件"方法來激活內聯模擬,我發現這種方法有時很不穩定.
I have a Android Clean Architecture project write in Kotlin with 3 modules:
- data (Android Library)
- domaine (Java Library)
- presentation (Android Application)
The 3 modules each have unit tests written with junit. But with Kotlin every class is final by default. I quickly had the problem: How to mock a final class with mockito
It's now possible with Mockito 2
It can be done via the mockito extension mechanism by creating the file /mockito-extensions/org.mockito.plugins.MockMaker
containing a single line:
mock-maker-inline
This solution works very well on data module (Android Library) and presentation module (Android Application) but doesn't work on my domaine module (Java Library).
I know that this question has already been asked (How to mock a final class with mockito, Mock objects calling final classes static methods with Mockito), but I didn't find the answer I'm looking for.
You can use the inline mocking method by default, by changing your Gradle dependency from the normal Mockito dependency:
compile "org.mockito:mockito-core:$mockito_version"
... to the following:
compile "org.mockito:mockito-inline:$mockito_version"
This way you won't have to rely on activating inline mocking with the "file in the resources folder" method, which I have found to be flaky sometimes.
這篇關于如何在 Android 項目的 Java 模塊上使用 Mockito 2 模擬最終類?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!