0

specs2 と mockito を使用して scala プロジェクトのテストを作成する際に問題があります。テスト対象のメソッドによってモックされたサービス メソッドに渡された引数の複雑なチェックを実行する方法はありますか? 例えば:

  session = ....
  sessionDao.getByUid(sessionUID).returns(Some(session))

  val result = service.refreshSessionFor(token)

  result must beLeft

  got{
    one(sessionDao).getByUid(sessionUID)
    one(sessionDao).update(any[Session])
  }

問題は、セッション オブジェクトの「lastUsed」フィールドが更新されたかどうかを確認したいということです。唯一の方法は、sessionDao.update メソッドのパラメーター フィールドを確認することです。しかし、mockito マニュアルでこれを行う方法を見つけることができません。

4

1 に答える 1

2

任意の specs2 マッチャーをモック メソッドに渡すことができます。

got{
  one(sessionDao).getByUid(sessionUID)
  one(sessionDao).update(beLike[Session] { case s: Session => s.lastUsed must be_>(last) })
}
于 2013-05-21T11:16:22.883 に答える