Mockito + kotlin Object + BitRise = fail
April 2021
In one of my recent PRs, there was this small change, apart ~1000 other lines of code:
object MockData { ... val NOW = mock<Now> { on { ms } doReturn msTIMEOUT on { s } doReturn secTIMEOUT.toLong() on { date } doReturn Date(msTIMEOUT) } ... }
It gave me lots of such errors on BitRise, though locally everything worked perfectly:
...
com.mycompany.packagename.ClassName100Test > Test case 100 FAILED
java.lang.NoClassDefFoundError at com.mycompany.packagename.ClassName100Test.kt:57
com.mycompany.packagename.ClassName101Test > Test case 101 FAILED
org.mockito.exceptions.misusing.UnfinishedStubbingException at ClassName101Test.kt:35
com.mycompany.packagename.ClassName102Test > Test case 102 FAILED
java.lang.NoClassDefFoundError at ClassName102Test.kt:43
com.mycompany.packagename.ClassName103Test > Test case 103 FAILED
java.lang.NoClassDefFoundError at ClassName103Test.kt:47
com.mycompany.packagename.ClassName104Test > Test case 104 FAILED
java.lang.NoClassDefFoundError at ClassName104Test.java:-2
com.mycompany.packagename.ClassName105Test > Test case 105 FAILED
java.lang.NoClassDefFoundError at ClassName105Test.java:-2
com.mycompany.packagename.ClassName106Test > Test case 106 FAILED
java.lang.NoClassDefFoundError at ClassName106Test.java:-2
com.mycompany.packagename.ClassName107Test > Test case 107 FAILED
java.lang.NoClassDefFoundError at ClassName107Test.java:-2
...
I can’t make any other conclusion but: avoid using Mockito mocking inside of Kotlin Objects.