我有一个函数,其原型类似于:
class objectToMock {
fun myFunc(stringArg: String, booleanArg: Boolean = false, functionArg: (String) -> Any = { 0 }): String
}
我希望能够存根myFunc
,但不知道该怎么做。像
@Mock
lateinit var mockedObject: ObjectToMock
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
`when`(mockedObject.myFunc(anyString(), anyBoolean(), any())).thenReturn("")
}
同时使用any()
和notNull()
会导致java.lang.IllegalStateException: any() must not be null
答案 0 :(得分:1)
当调用诸如null
,any()
等方法时,Mockito经常返回eq()
。将这些实例传递给未正确模拟的方法可能导致NullPointerExceptions
请参阅:https://github.com/nhaarman/mockito-kotlin/wiki/Parameter-specified-as-non-null-is-null
答案 1 :(得分:0)
您可以添加
mockedObject = ObjectToMock()
@Before是初始化的地方。 @Test这是进行测试的地方。您可以调用mockedObject.myFunc()
答案 2 :(得分:0)
这里的解决方案是使用https://github.com/nhaarman/mockito-kotlin中的anyOrNull
,或自己实现该帮助程序。