yoo*_*hok 2 junit android mockito kotlin
我正在使用Mockito编写测试代码。我遇到了TooManyActualInvocations错误。
org.mockito.exceptions.verification.TooManyActualInvocations:
mockView.enableProgressBar(0);
Wanted 1 time:
-> at com.MyPresenterTest.doSomething(MyPresenterTest.kt:160)
But was 2 times. Undesired invocation:
-> at com.MyPresenter.doSomething(MyPresenter.kt:195)
Run Code Online (Sandbox Code Playgroud)
这是我的示例代码:
class MyPresenter(val view: MyView) {
fun doSomething() {
view.enableProgressBar(0)
view.enableProgressBar(1)
view.enableProgressBar(2)
view.enableProgressBar(0)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码:
@Test
fun doSomethingTest() {
myPresenter.doSomething()
Mockito.verify(mockView).enableProgressBar(0)
Mockito.verify(mockView).enableProgressBar(1)
Mockito.verify(mockView).enableProgressBar(2)
Mockito.verify(mockView).enableProgressBar(0)
}
Run Code Online (Sandbox Code Playgroud)
如果我删除此行或将值从“ 0”更改为其他值,则该值不会重复。
我怎样才能解决这个问题?
TooManyActualInvocations
意味着...太多实际调用。
这必须工作正常:
@Test
fun doSomethingTest() {
myPresenter.doSomething()
Mockito.verify(mockView, times(2)).enableProgressBar(0)
Mockito.verify(mockView).enableProgressBar(1)
Mockito.verify(mockView).enableProgressBar(2)
}
Run Code Online (Sandbox Code Playgroud)
至于enableProgressBar
被称为0参数两次,然后断言应该是合适的(应断言,它被称为两次)。或者你可以使用一些方便的方法的Mockito等atLeastOnce()
,atMost(2)
等,而不是简单的times
,如果你想留下一些空间,实现细节。
归档时间: |
|
查看次数: |
583 次 |
最近记录: |