Как создать TestActorRef в Scala для актера с параметрами конструктора?
Акка Тестирование дают следующий способ создания TestActorRef:
import akka.testkit.TestActorRef
val actorRef = TestActorRef[MyActor]
Как это расширить для тестирования существующего актера, который принимает аргументы конструктора? Когда я пытаюсь запустить это как есть, заменив класс моего актера, я получаю следующую ошибку:
"при создании актера
akka.actor.ActorInitializationException: Не удалось создать экземпляр Актера
Убедитесь, что Actor НЕ определен внутри класса/признака,
если это так выходит за пределы класса/признака, т.е. в сопутствующем объекте,
ИЛИ попробуйте изменить: "actorOf (Props [MyActor]" в "actorOf (реквизит (новый MyActor)".
Различные идеи, которые я мог придумать для добавления аргументов после имени класса внутри квадратных скобок, также разбились и сожжены.
Ответы
Ответ 1
Вы можете использовать Props
следующим образом:
val actorRef = TestActorRef(Props(new MyActor(param1, param2)))
Или factory, например:
val actorRef = TestActorRef(new MyActor(param1, param2))
См. методы apply
в объекте TestActorRef
.