Я реализую модульные тесты для моего проекта Akka. Чтобы избежать InvalidActorNameException
и т. Д., Я хочу, чтобы все участники, которые были созданы в рамках одного модульного теста, были остановлены до запуска следующего модульного теста. Итак, для каждого актера, созданного в рамках единичного теста, я вызываю _system.stop(someActorRef)
в конце его. Однако для фактического прекращения действия актера требуется некоторое время, и, к сожалению, следующий единичный тест обычно запускается до того, как актеры, созданные в предыдущем, фактически исчезли. И так как нет Future
, возвращаемого методом stop
, а также не имеющегося метода awaitStop
, я действительно не знаю, как это решить. В настоящее время я звоню Thread.sleep(1000)
в конце каждого модульного теста и надеюсь, что к этому времени все актеры мертвы, но, очевидно, я не могу оставаться таким. : DКак остановить всех актеров и дождаться их окончания?
Буду признателен за любой намек!
Это выглядит действительно интересно, однако, он не компилируется: – lambdarookie
'' '' 'отсутствует список аргументов для метода применяется в объекте Отменен [ error] Неприменимые методы только преобразуются в функции, когда ожидается тип функции. [error] Вы можете сделать это преобразование явным, написав 'apply _' или' apply (_) (_, _) 'вместо' apply'. [error] probe.expectMsg (Terminated (someActorRef)) '' '' – lambdarookie
Я обновил свой ответ – kardapoltsev