Kotlin + Mockito:获取空值



请我有点困惑,这个测试失败了,"java.lang.IllegalStateException: notNull(( 不能为空":

@Test
fun when_resume_subscribe() {
    // WHEN
    presenter.onStart()
    // THEN
    verify<Model>(model).subscribe(notNull()) // <---- fails here
}

以下是正在测试的方法:

override fun onStart() {
    model.subscribe(object : Observer<Bar> {
        override fun onCompleted() {
            view?.showProgress(false)
        }
//... more stuff...

请问发生了什么事?

基本上是使用 Generic 将 Null 对象封装到特定的类对象中。代码如下,我们在其中覆盖 any(( 以相应地处理问题。

private fun <T> any(): T {
Mockito.any<T>()
return uninitialized()
  }
private fun <T> uninitialized(): T = null as T

有关更多详细信息,您可以查看此 https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791 教程。

使用

<dependency>
  <groupId>org.mockito.kotlin</groupId>
  <artifactId>mockito-kotlin</artifactId>
  <version>3.2.0</version>
  <scope>test</scope>
</dependency>

将具有方法Mockito.anyOrNull()该方法不会在不可为空的参数上失败...

相关内容

  • 没有找到相关文章

最新更新