在specs2中,我可以通过以下方式验证方法的调用时间:
there was one(user).getName
there were two(user).getName
there were three(user).getName但是如何检查N次呢?我正在寻找的东西是:
there were times(n, user).getName不幸的是,没有这样的API
发布于 2014-10-11 01:23:17
如果查看mockito的specs2绑定的实现,您会发现类似于
def one[T <: AnyRef](mock: T)(implicit anOrder: Option[InOrder] = inOrder()): T =
verify(mock, org.mockito.Mockito.times(1))(anOrder)所以我想你可以通过模仿这个方法来定义你自己的times方法:
def times[T <: AnyRef](n: Int, mock: T)(implicit anOrder: Option[InOrder] = inOrder()): T =
verify(mock, org.mockito.Mockito.times(n))(anOrder)或者干脆显式地使用mockito:
val mocker = new MockitoMocker {}
verify(user, org.mockito.Mockito.times(42)).getName发布于 2014-10-12 12:36:43
这是一个遗漏。我刚刚将exactly添加到API中,并将其发布为specs2-mock-2.4.7-SNAPSHOT (官方版本很快就会发布):
val list2 = mock[java.util.List[String]]
1 to 2 foreach { i => list.add("one") }
there was exactly(2)(list).add("one")https://stackoverflow.com/questions/26303624
复制相似问题