如何使用手动嵌入Kotlin趣味
我有一个通过测试下面,使用内联的乐趣。
class SimpleClassTest { private inline fun anyObject(): T { return Mockito.anyObject() } lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = SimpleClass(injectedObject) simpleObject.simpleFunction() verify(injectedObject).settingDependentObject(anyObject()) } }
但现在我想删除内联的乐趣,因为它只有一个用法。 所以我用实际的类名称替换T,即Response(来自Okhttp),并将其直接设置为参数settingDependentObject
class SimpleClassTest { lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = SimpleClass(injectedObject) simpleObject.simpleFunction() verify(injectedObject).settingDependentObject(Mockito.anyObject()) } }
它会失败
java.lang.IllegalStateException: Mockito.anyObject() must not be null
我怎么能手动内联正确的行为,当我有private inline fun anyObject(): T
?
更新注意:这是Kotlin的后续问题:手动内联generics函数会产生不同的结果? 。 前面提供了为什么,但我不能得到如何手动内联正确。
- 为什么$ MockitoMock $实例不被识别为模拟?
- 是否有可能与mockito-kotlin一起使用doReturn()和CALLS_REAL_METHODS?
- 如何模拟Kotlin单身物件?
- Mockito可以在方法调用时根据它们的值validation参数吗?
- Mockito对象与Mockito Kotlin不沾方法
- 如何验证使用mockito的kotlin可变参数函数
- 在Kotlin函数中使用Mokito anyObject()时,指定为非null的参数为null
- Mockitounit testing:在一个类的所有方法调用中,返回“true”
- TestScheduler不起作用(Kotlin + RxJava2 + mockito)