Я пишу несколько интеграционных тестов, чтобы убедиться, что мой клиент в сервисе работает.Упрощенная форма тестов, которые у меня есть:
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
}
}