Android Mockito.verify 说参数不同!打印相同内容

2024-05-10

情况

我有一个界面Tracker其中有这个方法:

fun trackEvent(event: String, args: Bundle? = null)

我想验证是否使用特定的调用此方法event。 被测试的内部对象调用此方法Bundle目的。 所有事件都指定为

companion object {
        const val EVENT = "EVENT"
}

问题

测试失败并进行此验证:

Mockito.verify(tracker).trackEvent(Tracker.EVENT)

带有消息:

论据不同!通缉: tracker.trackEvent("事件", null); ...

实际调用有不同的参数: tracker.trackEvent("事件", null); ...

解决方案有很多,主要是使用Mockito.eq(), Mockito.refEq(), ArgumentMatchers, Captures等等。他们都不为我工作,给予相同或NullPointerException


对于那些面临同样问题的人,解决方案是您需要添加testImplementation "com.nhaarman:mockito-kotlin:1.5.0"在你的build.gradle文件。更多信息,请点击此处https://github.com/nhaarman/mockito-kotlin https://github.com/nhaarman/mockito-kotlin.

事情是在Java默认情况下,所有类都可以为 null,这与Kotlin。虽然mockito被设计为与Java,上面的库添加了使用 Mockito 的支持Kotlin.

所以,这个特定测试的解决方案

Mockito.verify(tracker).trackEvent(Tracker.EVENT)

is

Mockito.verify(tracker).trackEvent(eq(Tracker.ADD_TRANSACTION), any())

where eq() and any()是函数com.nhaarman.mockito_kotlin.

更多信息请点击这里:https://stackoverflow.com/a/38722935/3569545 https://stackoverflow.com/a/38722935/3569545

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Mockito.verify 说参数不同!打印相同内容 的相关文章

随机推荐