如何在Kotlin中指定Mockito模拟ExtraInterfaces使用NHAARMAN Mockitokotlin2

问题描述

我了解如何使用@Mock批注指定extraInterface,但是如何创建模拟并添加extraInterfaces内联?

@SmallTest
@RunWith(MockitoJUnitRunner::class)
class MyTestClass {
    
    @Mock(extraInterfaces = [MyCallback::class])
    lateinit var callbackFragment: Fragment
    ...
}

但是我该怎么做呢?

// this doesn't compile
val callbackFragment = mock<Fragment>(extraInterfaces = [MyCallback::class])

在Kotlin中将extraInterfaces添加到Mockito模拟中的正确语法是什么?

解决方法

这应该有效:

 val mock = mock<Fragment>(extraInterfaces = arrayOf(MyCallback::class))
,

这也有效:

>>> [data] = {'some':2}
>>> data
'some'
>>> [data] = {'foo':2,'bar':3}
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
ValueError: too many values to unpack (expected 1)
>>> [data] = [1]
>>> data
1
>>> [data] = [[1]]
>>> data
[1]
>>> [data] = [1,2]
Traceback (most recent call last):
  File "<stdin>",in <module>
ValueError: too many values to unpack (expected 1)
>>> [data] = []
Traceback (most recent call last):
  File "<stdin>",in <module>
ValueError: not enough values to unpack (expected 1,got 0)