Как передать настраиваемую информацию в Reporter в Scala Test?
Наш тестовый пример scala вызывает REST API, например. создает пользователя, и он проверяет, действительно ли создан userId, путем анализа выходного ответа. В случае, если REST API выдает ошибку, userId пуст, а customReport показывает событие как TestFailed сorg.scalatest.exceptions.TestFailedException: "" equaled ""
из-за условия утверждения (assert(userId!= ""))
Есть ли способ передать репортеру ответ REST API. Пожалуйста, порекомендуйте.
class CustomReport extends Reporter {
override def apply(event: Event): Unit = {
}
}
1 ответ
Рассмотрите возможность предоставления настраиваемой информации о сбое с помощью подсказки, например,
assert(userId != "", myCustomInformation)
или
withClue(myCustomInformation) {
userId should not be empty
}
где customInformation
может быть, скажем,
case class MyCustomInformation(name: String, id: Int)
val myCustomInformation = MyCustomInformation("picard", 42)
Вот рабочий пример
import org.scalatest._
class ClueSpec extends FlatSpec with Matchers {
case class MyCustomInformation(name: String, id: Int)
"Tests failures" should "annotated with clues" in {
withClue(MyCustomInformation("picard", 42)) {
"" should not be empty
}
}
}
который выводит
[info] Tests failures
[info] - should annotated with clues *** FAILED ***
[info] MyCustomInformation(picard,42) "" was empty (HelloSpec.scala:10)
В качестве примера настраиваемого репортера рассмотрим /questions/49762294/alternativnyie-sposobyi-otobrazheniya-scalatest-rezultatov/49762300#49762300