Причина в том, что bodyString
возвращает полное тело ответа, как описано в документации .
. Вы можете использовать in
matcher (вы можете увидеть реализацию здесь - ищите InMatcher [A] , но он не будет работать, потому что вам нужно переключить expected.contains(actualValue)
с expected.contains(expected)
Я предлагаю вам реализовать свой собственный MyOwnInMatcher
:
class MyOwnInMatcher[A](expected: Seq[A]) extends Matcher[A] {
def name: String = "customIn"
protected def doMatch(actual: Option[A]): Validation[Option[A]] = actual match {
case Some(actualValue) =>
if (expected.contains(actualValue))
actual.success
else
s"found $actualValue".failure
case _ => Validator.FoundNothingFailure
}
}
и используйте его:
.check(jsonPath("$.message").validate(customIn("Greeting"))))
, который проверяет, существует ли «Приветствие» в атрибуте message
тела ответа json.