Kotlin + Mockito:得到一个null
请我有点困惑,这个测试失败与“java.lang.IllegalStateException:notNull()不能为空” :
@Test fun when_resume_subscribe() { // WHEN presenter.onStart() // THEN verify(model).subscribe(notNull()) // <---- fails here }
这里是测试的方法:
override fun onStart() { model.subscribe(object : Observer { override fun onCompleted() { view?.showProgress(false) } //... more stuff...
请问发生了什么?
这基本上是使用Generic将Null对象封装到特定的类对象中。 代码如下,我们重写any()来相应地处理这个问题。
private fun any(): T { Mockito.any () return uninitialized() } private fun uninitialized(): T = null as T
有关更多详细信息,可以查看https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791教程。