Hi i am trying to mock a final class(as all classes in kotlin are final by default) and added the following dependencies in my gradle:
testImplementation 'junit:junit:4.12'
testImplementation 'au.com.dius:pact-jvm-consumer-junit_2.11:3.5.10'
testImplementation "org.mockito:mockito-android:2.13.0"
testImplementation 'org.mockito:mockito-inline:2.13.0'
testImplementation "org.mockito:mockito-core:2.13.0"
//testImplementation 'io.mockk:mockk:1.8'
testImplementation 'org.assertj:assertj-core:3.8.0'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'junit:junit:4.12'
androidTestImplementation "org.mockito:mockito-core:2.13.0"
androidTestImplementation "org.mockito:mockito-android:2.13.0"
androidTestImplementation 'org.mockito:mockito-inline:2.13.0'
androidTestImplementation "com.android.support.test.espresso:espresso-intents:3.0.2"
the mockito-inline is supposed to enable you to mock a final kotlin class and so i added to both my java unit test and my instrumental test using testImplementation and androidTestImplementation
On building the project i get the following error:
More than one file was found with OS independent path 'mockito-extensions/org.mockito.plugins.MockMaker'
Any ideas whats going on? if i remove the androidTestImplementation of the mockitio inline, it compiles fine but when running intrumental test i get the mockito error saying it cannot mock a final class.
In order to be able to mock final classes in Kotlin, you’ll need to create a file
org.mockito.plugins.MockMaker
(literally) that contains only this line
mock-maker-inline
and place it into
test/resources/mockito-extensions
.
For more info please read https://antonioleiva.com/mockito-2-kotlin/.
mockito-inline
won't work for instrumentation tests. In order to be able to mock final classes in instrumentation tests you just need to include the following line only:
androidTestImplementation com.linkedin.dexmaker:dexmaker-mockito-inline:2.28.0
Refer to its Github page for more details
This thread might also be useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With