使用有或没有时间的验证方法()方法(1)参数

问题描述 投票:0回答:2

我在这两种用法之间找不到任何实际区别。只是为了避免将来的并发症,可能会导致一个问题随机选择其中任何一个吗?

  1. verify(mockObj).foo();

  2. verify(mockObj, times(1)).foo();

如果它们完全一样,可以假定哪一个是最佳实践?

java unit-testing mockito
2个回答
7
投票
它们是等效的。来自

Mockito#verify(T)

的Javadoc

维持某些行为

一次。 alias到verify(mock, times(1))

,例如:

verify(mock).someMethod("some arg");

above等同于:
verify(mock, times(1)).someMethod("some arg");

[...]

被认为比另一个更好的主观。第一个选项(否

times(1)
)较短,但是第二个选项(带有

times(1)

)使代码的意图明确。第二个选项还允许您为if和何时验证验证的描述指定。
使用您和您的团队认为最可读性的人。特别是,请确保将来的某个时候回到该代码时都可以理解代码。

是同一件事,第一个是用于测试精确的呼叫数量,第二个呼叫实际上是这样做的:

verify(mockObj).foo();

因此,它仅适用于代码的可读性。

-1
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.