Как передать настраиваемую информацию в 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

Другие вопросы по тегам