对于场景单元测试,用户输入密码和密码确认。当我尝试验证在不同的on()块中调用的相同方法时,在第二个on()块上得到以下错误。
org.mockito.exceptions.verification.TooManyActualInvocations:
activationPasswordView.disableButton();
Wanted 1 time:
But was twice代码如下:
given("user set password "){
on(“password is null”){
presenterImpl.validatePassword(null, null)
it("done button should be disabled"){
verify(view).disableButton()
}
}
on("input only one password"){
presenterImpl.validatePassword("Password", "")
it("done button should be disabled"){
verify(view).disableButton()
}
}
}但是如果我调用一个不同的方法,它就能正常工作。我认为这不是Spek框架的用法,因为我见过的所有示例都使用断言。有没有办法在Spek中编写以下条件而不出现错误?即使是不同的given()也会导致错误。
发布于 2019-05-07 22:04:43
mocked对象计算函数为特定mock调用的次数。由于您没有在每次测试之间重置mock,因此每次调用该方法时,计数器都会增加。
您应该使用:reset(view)来重置模拟计数器。这个问题与Spek框架无关。
https://stackoverflow.com/questions/56019643
复制相似问题