scalatest と mockito のヘルプが必要です。ジェネリックを使用した単純なメソッドのテストを書きたい:
trait RestClient {
def put[T: Marshaller](url: String, data: T, query: Option[Map[String, String]] = None) : Future[HttpResponse]
}
私のテストクラス:
class MySpec extends ... with MockitoSugar .... {
...
val restClient = mock[RestClient]
...
"Some class" must {
"handle exception and print it" in {
when(restClient.put(anyString(), argThat(new SomeMatcher()), any[Option[Map[String, String]])).thenReturn(Future.failed(new Exception("Some exception")))
...
}
}
}
テストを実行すると、次の例外がスローされます。
Invalid use of argument matchers!
4 matchers expected, 3 recorded:
では、メソッドのパラメーターが 3 つしかないのに、なぜ 4 つのマッチャーを要求するのでしょうか? ジェネリックのせい?
バージョン:
- スカラ 2.11.7
- スケーラテスト 2.2.4
- モキート 1.10.19