我想在调用doSomething()时验证是否调用过一次someMethod。在doSomething()中,正在调用currentTimeMillis(),该值将不完全相同。我如何测试这个?
当前我收到以下错误消息:
*org.mockito.exceptions.misusing.未完成验证例外:
此处缺少验证(模拟)的方法调用:-
正确验证示例:验证(模拟)。doSomething()*
class SomeLoginClassTest {
@get:Rule
val mockitoRule = MockitoJUnit.rule()
@Mock
lateinit var someClass: SomeClass
@InjectMocks
lateinit var someLoginClass: SomeLoginClass
@Test
fun `trackDoSomething handles values`() {
someLoginClass.doSomething()
Mockito.verify(someClass).someMethod(System.currentTimeMillis())
}
}
open class SomeLoginClass @Inject constructor(private val someClass: SomeClass) {
@RequiresApi(Build.VERSION_CODES.N)
fun doSomething() {
val elapsedTime = System.currentTimeMillis()
someClass.someMethod(elapsedTime)
}
}
open class SomeClass {
@RequiresApi(Build.VERSION_CODES.N)
public fun someMethod(elapsedTime: Long) {
var elapsed = Random().longs()
}
}
Build.gradle:
// Dagger
api "com.google.dagger:dagger:2.13"
kapt "com.google.dagger:dagger-compiler:2.13"
api "com.google.dagger:dagger-android-support:2.13"
kapt "com.google.dagger:dagger-android-processor:2.13"
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
testCompile 'org.mockito:mockito-core:2.18.3'
testCompile 'junit:junit:4.12'
// Dependencies for Android unit tests
testImplementation "org.mockito:mockito-core:2.18.3"
androidTestImplementation "org.mockito:mockito-android:2.18.3"
androidTestImplementation "com.nhaarman:mockito-kotlin:1.5.0"
我试过这个:
缺少方法调用验证(mock),但有一个?
Mockito在看起来正常时给出未完成的验证异常
Mockito。验证(某个类)。someMethod(System.currentTimeMillis())
验证的语法是否不正确
Mockito。验证(某个类)。someMethod(Mockito.eq(System.currentTimeMillis())
正如AutonomousApps建议的那样
Mockito.verify(ockito.any)
我正在面对 我已经检查了所有参数和要传递以验证的对象,但无法找出导致上述异常的原因 我要测试的条件, 测试用例 堆栈跟踪 我用同样的方法做了其他测试用例,它已经工作了,但是我不知道为什么它在这里不起作用,而且所有的方法都是公开的。请帮我弄清楚,谢谢
我正在尝试做一个测试,它验证(使用Mockito v1.9.5的)在执行传递
考虑以下代码: 我想做的是,在异常测试中,标记我希望调用doSomething1()。然而,在转换器上抛出异常。convert(),这意味着永远不会调用verify()调用。因此,verifyNoMoreInteractions()在after()中失败。 注意:这是一个非常通用的示例,用于隐藏我们的任何内部代码。
我试图测试一个if条件,使用时(),然后返回(),但是当我运行我的测试用例时,它会给我丢失的方法调用,即使我已经嘲笑了实现该方法的类。 这就是我想嘲笑的如果条件 这就是我检查if条件的方式 我已经用@Mock annotation模拟了“request”,但仍然得到下面的异常。 我不确定我做错了什么。有人能帮忙吗?
问题内容: 我正在使用以下内容。 这是我的utils课 这是被测课程的要点: 这是测试: 以上测试失败。给出的验证模式为空,但根据代码,如果订购成功,则必须发送电子邮件。 问题答案: 如果您要嘲笑行为(类似),则实际上无需调用。也就是说,这是我重写测试方法的动力: 我分为四个部分,以更好地突出显示正在发生的事情: 1.变量 我选择在此处声明任何实例变量/方法参数/模拟协作者。如果它在多个测试中使用