Я пытаюсь создать макет для WSClient Play следующим образом:
def mockGet[A](url : String, method : String, headers : Seq[(String, String)], timeout : Duration)(
response: Future[AhcWSResponse]
) =
(mockWsClient
.url(_ : String)
.withMethod(_ : String)
.withHttpHeaders(_: (String, String)*)
.withRequestTimeout(_ : Duration)
.stream())
.expects(url, method, headers, timeout)
.returning(response)
Проблема в withHttpHeaders
- на самом деле это занимает (String, String) *, но когда я указываю этот тип, как указано выше Я получаю ошибку компилятора, такую как:
[error] found : Seq[(String, String)]
[error] required: (String, String)
[error] .withHttpHeaders(_: Seq[(String, String)])
Какой тип мне нужно указать для этого метода, потому что (String, String) не является правильным. Фактическое реальное определение этого метода:
override def withHttpHeaders(headers: (String, String)*): Self
ОБНОВЛЕНИЕ
Я попробовал это после предложения @ Марио:
def mockGet[A](url: String, method: String, headers: Seq[(String, String)], timeout: Duration)(
response: (String, String, Duration) => Future[ws.WSResponse]
) =
(
(
xs: Seq[(String, String)]
) =>
mockWsClient
.url(_: String)
.withMethod(_: String)
.withRequestTimeout(_: Duration)
.withHttpHeaders(xs: _*)
.stream()
)
.expects(headers)
.returning(response)
но это приводит к сбою компилятора с:
[error] value x$1