使用scalamock返回Try[T]的模拟方法
我知道这可能遗漏了一些非常明显的东西,但我似乎无法模拟一个返回Try[t]的方法 简化示例:使用scalamock返回Try[T]的模拟方法,scala,unit-testing,mocking,scalatest,Scala,Unit Testing,Mocking,Scalatest,我知道这可能遗漏了一些非常明显的东西,但我似乎无法模拟一个返回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 fai
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!")))
在您的示例中,
T
绑定到User
,因此返回User
故障:
(mockRepo.update[User] _).expects(13).returns(Failure[User](new Exception("Failed!")))