org.mockito.Mockito.times(1)是否有便捷的方法?

时间:2018-10-10 15:33:08

标签: java unit-testing junit mockito refactoring

我正在寻找一种正式提供的方法来替换...的最后一行...

import static org.mockito.BDDMockito.then;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;

// ...

Runnable mock = mock(Runnable.class);
then(mock).should(times(1)).run();

...带有一些的内容,例如:

then(mock).should(once()).callMethod();

为什么更短?由于IntelliJ通常有用的功能会显示参数的名称,因此会产生许多长代码行:

then(mock).should(times(wantedNumberOfInvocations: 1)).callMethod();

我知道我可以轻松编写这样的函数,但是随后要么必须将其复制用于几个工作区项目,要么要引入一个新的模块,这似乎对我来说太过头了。

如果您能为Mockito.atLeastOnce()指出类似Mockito.atLeast(1)的内容,而没有atLeast部分,那就太好了:-)谢谢

3 个答案:

答案 0 :(得分:1)

其他选择是使用简单的should(),它是单次调用的别名:

then(mock).should().callMethod();

答案 1 :(得分:0)

没有这样的方法。只需声明自己的名字即可。

private static VerificationMode once()
{
    return Mockito.times(1);
}

答案 2 :(得分:0)

您可以使用

Mockito.calls(1).someMethod()