Выполнение многоступенчатых тестов с использованием Scala Flatspec - PullRequest
0 голосов
/ 30 апреля 2019

Я пишу несколько интеграционных тестов, чтобы убедиться, что мой клиент в сервисе работает.Упрощенная форма тестов, которые у меня есть:

class MyTest with FlatSpec {
  val service = new MyService()

  "MyService" should "Accept a request and publish a notification" {
    val request = new Request(id = "1234")
    val notification: Future = service.publish(request)
    Future.Await(notification)
  }

  it should "Produce the expected result" {
    val request = new Request(id = "5678")
    val notification: Future = service.publish(request)
    Future.Await(notification)

    val result: Seq = service.getResult(id = "5678")
    result should not be empty
  }
}

Обратите внимание, что все этапы первого теста должны дублироваться во втором тесте.Служба действует в течение всего срока службы пакета, и то, что происходит в компоненте службы, не является дешевой операцией.Мне интересно, можно ли гарантировать, что тесты выполняются по порядку, чтобы я мог реорганизовать свои тесты следующим образом:

class MyTest with FlatSpec {
  val service = new MyService()
  val id = "1234"

  "MyService" should "Accept a request and publish a notification" {
    val request = new Request(id)
    val notification: Future = service.publish(request)
    Future.Await(notification)
  }

  it should "Produce the expected result" {
    val result: Seq = service.getResult(id)
    result should not be empty
  }
}
...