Я новичок в Akka.NET, на данный момент у меня возникают трудности с тестированием, если мой актер отправил сообщение самому себе.Тестирование сообщения о себе отправлено в Akka.NET
Это мой актер код:
public class MySuperActor : ReceiveActor
{
private readonly IActorRef _anotherActor;
public RoteadorDeContratosSuspensoActor(IActorRef anotherActor)
{
_anotherActor = anotherActor;
Receive<MySuperActorMessage>(m => HandleMessage(m));
Receive<MySuperActorSuperMessage>(m => HandleSuperMessage(m));
}
private void HandleMessage(MySuperActorMessage message)
{
Self.Tell(new MySuperActorSuperMessage(message));
}
private void HandleSuperMessage(MySuperActorSuperMessage message)
{
_anotherActor.Tell(new AnotherActorMessage(message));
}
}
И это мой тестовый код
[TestFixture]
public class MySuperActorTest : TestKit
{
private IActorRef _sut;
private IActorFactory _actorFactory;
private List<Contrato> _contratos;
private Props _props;
[Test]
public void WhenReceiveASimpleMessageActorShouldSendSuperMessageToHimself()
{
var testProbe = CreateTestProbe();
Props props = Props.Create<MySuperActor>(testProbe);
var sut = ActorOf(_props);
sut.Tell(new MySuperActorMessage());
ExpectMsg<MySuperActorSuperMessage>();
}
}
Мой тест всегда перерыв со следующим сообщением:
Failed: Тайм-аут 00:00 : 03 в ожидании сообщения типа AkkaNetTestPlaygroung.MySuperActorSuperMessage
Как я могу проверить, посылает ли мой актер другое сообщение самому себе?
@ Усеина-mambediev У меня есть этот тест в моем коде, я хотел бы знать, как проверить правильно, если какой-то актер послал сообщение самому себе. Иногда у меня может быть какой-то код, в котором у меня нет другого актера для использования testprobe и expectmsg. Спасибо за ваш комментарий Atm Я решил решить вопрос, используя другого актера, чтобы отправить сообщение * самому себе * –
@AlbertoMonteiro, я считаю, что в настоящее время нет возможности проверить такие сообщения. Единственный возможный способ - проверить сообщения, отправленные с тестируемого актера, другим участникам (тестовым пробникам) или проверить, были ли вызваны зависимости (с использованием mocks). –
@ usein-mambediev Да, я получил это, я действительно делаю это, и когда я проверяю, были ли вызваны зависимости, я использую '' '' ExpectNoMsg''', чтобы дождаться выполнения актера и проверить, вызван ли метод dependecie. Спасибо за помощь –