у меня есть этот код, чтобы проверить список пуст или нет, если он пуст, он будет иметь ValidationError («не должен пуст»)Как получить ValidationError от JsResult в тесте
case class Foo(t: List[String], r: String)
object Foo {
implicit val fooReads: Reads[Foo] = (
(JsPath \ "t").read[List[String]]
.filter(ValidationError("should not empty"))(_.nonEmpty) and
(JsPath \ "r").read[String]
)
}
Однако я Не знаю, как получить ошибку проверки в тесте.
val json = """
|{
| "t": [],
| "r": "123"
|}
""".stripMargin
val result: JsResult[Foo] = json.validate[Foo]
result.isError shouldBe true
result.asEither.left.get.head._2.head.message shouldBe "should not empty"
код немного некрасиво, есть лучший способ проверить ValidationError от JsResult?
Большое спасибо заранее
вам нужна ошибка только в тестах, в случае пустого списка ли? Или вы хотите, чтобы в ваших чтениях было какое-то правило проверки правильности? Значение этого правила будет бросать в любое время, когда список пуст, а не только в тестах. – sedovav
Я просто хочу получить сообщение об ошибке, но синтаксис является подробным –