ScalaTest - 如何找出最终块中的方法执行了多少次?

时间:2018-03-29 14:13:43

标签: scala scalatest

我正在使用ScalaTest的Eventually.eventually并对其进行了配置,以便它每秒都尝试获取一条记录,直到状态完成为止:

Eventually.eventually(timeout(5 seconds), interval(1 seconds)) {
   getItem(recordId).record.forall(
      _.state.contains(Constants.RecordStatusComplete)) shouldEqual true
}

我必须得到getItem(recordId)被调用的次数。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如何计算呢?有点丑陋可能但是scalatest似乎没有为你提供它所做的尝试量,并且可能这仅用于测试,所以:

val count = Iterator from 0
Eventually.eventually(timeout(5 seconds), interval(1 seconds)) {
   count.next()
   getItem(recordId).record.forall(
      _.state.contains(Constants.RecordStatusComplete)) shouldEqual true
}
// count.next() will give you the attempts

我可以想到使用模拟框架等的其他解决方案,但它们可能会变得非常相似。

相关问题