当前位置: 首页 > 知识库问答 >
问题:

你如何让Mockito和Kotlin不可空类型玩得很好?

夏侯野
2023-03-14

作为再现这个概念的一个非常基本的示例,我有这样一个类:

open class Something {
    fun doSomething(param: String): Boolean {
        println(param)
        return true
    }
}

当我在这里嘲笑它的时候:

class ExampleUnitTest {
    @Test
    fun mockito_test() {
        val myMock =  Mockito.mock(Something::class.java)
        Mockito.`when`(myMock.doSomething(any())).thenReturn(true)
    }
}
java.lang.IllegalStateException: any() must not be null

    at com.example.mockitokotlinexample.ExampleUnitTest.mockito_test(ExampleUnitTest.kt:18)

我再次得到IllegalStateException错误。

有人有想法吗?

共有1个答案

齐夕
2023-03-14

我已经通过创建自己的any()解决了这个问题

private fun <T> any(type : Class<T>): T {
    Mockito.any(type)
    return null as T
}
 类似资料:
  • 问题内容: 我正在尝试让JAXB与我的常规类一起使用,但是,它似乎不起作用,但是Java版本却可以。这是代码… 以下是方案: 如果2和3不加注释,则可以正常工作。 如果1和4不加注释,我得到: 如果1和5不加注释,我得到: 有任何想法吗? Java: Groovy: 测试: 问题答案: 取消注释1和4是使用Groovy设置JAXB的正确方法。它不起作用的原因是每个Groovy类都具有metaCla

  • 我正在写一个图片素材库,供入门编程的学生玩。(我从DrRget的图片素材库中窃取了这个想法和模式。) https://github.com/dupontmanualhs/dm-image 大部分是用Swing写的(那是< code>master分支),但是我在尝试把它转换成ScalaFX(见< code>scalafx分支),有一些问题。理想情况下,学生应该能够做如下事情: 并显示一个带有火车引擎

  • 在其他地方,我需要从中的内容创建一个。所以,我这样做: 此外,在这里使用进行一些转换,以便每次都用每一个小东西清理它,一方面为我提供编译时保证和安全性,但这在大多数情况下是一个大麻烦。有没有一些短手来绕过这些情况?

  • 我需要能够在运行时告诉kotlin集合的泛型类型。我怎么做?

  • 只能在类文本的左侧使用类 是否可以像在C#中那样对泛型参数提供类约束,或者是否可以使用其他语法来获取泛型参数的类型信息?

  • 如果你的项目有付费的开发者,一定要尽早设置钱可以购买什么东西的指导方针。这并不意味着你需要每天在邮件列表中说明两次来重申你的高尚和不腐的本性。你只需要在恰当的时机放松由钱导致的紧张。你不需要从一开始就假设存在这种紧张;你只需要说明有这种可能性。 一个完美的例子就是Subversion项目。CollabNet在2000年开始了Subversion,从一开始它便是项目主要的投资者,为多个开发者提供薪水