使用 scalamock 返回 Try[T] 的模拟方法



我知道这可能缺少一些非常明显的东西,但我似乎无法模拟返回 Try[T] 的方法

简化示例:

case class User (first: String, last: String)
// ...
// in Repository class:
  def update[T](id: Int): Try[T] = { ... }
// ...
// in scalatest test using scalamock:
test("a bad id should return a failed update") {
  val mockRepo = mock[Repository]
  (mockRepo.update[User] _).expects(13).returns(???)
  val result = mockRepo.update[User](13)
  result.isSuccess should be (false)
}

如何从模拟方法返回失败的 Try[T]?

>在您的示例中,T绑定到User,因此返回User失败:

(mockRepo.update[User] _).expects(13).returns(Failure[User](new Exception("Failed!")))