Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过单元测试涵盖Akka.Net参与者监管策略?_C#_Unit Testing_Akka_Akka.net - Fatal编程技术网

C# 如何通过单元测试涵盖Akka.Net参与者监管策略?

C# 如何通过单元测试涵盖Akka.Net参与者监管策略?,c#,unit-testing,akka,akka.net,C#,Unit Testing,Akka,Akka.net,是否可以测试我的参与者是否使用特定的监控策略?例如,我想确保在子参与者抛出异常后,异常将被停止,并且父参与者将收到终止消息 我试着这样做: [TestFixture] 公共类监控策略测试:TestKit { public SupervisionStrategyTest():base(@“akka.suppress json序列化程序warning=true”) { XmlConfigurator.Configure(); } [测试] 公开无效测试() { var parent=Sys.Acto

是否可以测试我的参与者是否使用特定的
监控策略
?例如,我想确保在子参与者抛出异常后,异常将被停止,并且父参与者将收到
终止
消息

我试着这样做:

[TestFixture]
公共类监控策略测试:TestKit
{
public SupervisionStrategyTest():base(@“akka.suppress json序列化程序warning=true”)
{
XmlConfigurator.Configure();
}
[测试]
公开无效测试()
{
var parent=Sys.ActorOf(Props.Create());
var testProbe=CreateTestProbe(“订户”);
Tell(testProbe);
告诉(新对象());
var t=testProbe.ExpectMsg(10.Seconds());
}
公共类ParentActor:ReceiveActor
{
私有TestProbe父级;
公共父角色()
{
var child=Context.ActorOf();
接收(
m=>
{
父代=m;
});
//当儿童演员停下来时,我们应该收到这个,但我们没有
接收(
m=>
{
Tell(new ChildActor.Terminated());
});
收到任何(
m=>
{
Tell(新对象());
});
}
受保护的覆盖监控器策略监控器策略()
{
返回新的OneForOneStrategy(
maxNrOfRetries:0,//没有重新启动
withinTimeRange:TimeSpan.fromses(30),
localOnlyDecider:x=>Directive.Stop);
}
}
公共类ChildActor:非类型转换器
{
受保护的覆盖无效OnReceive(对象消息)
{
抛出新异常(“测试”);
}
公共类终止
{
}
}
}

不幸的是,它不起作用。似乎
Parent
无法从akka系统获取
终止的消息。这是TestKit中的错误还是我遗漏了什么?

您是否尝试过显式监视子actor(
Context.watch(Context.ActorOf())
)?@Horusiath,那么,在这种情况下,我将测试actor被终止的事实,而不是放置在
终止的
消息句柄中的逻辑您是否尝试过显式监视子actor(
Context.Watch(Context.ActorOf())
)?@Horusiath,在这种情况下,我将测试actor被终止的事实,而不是放置在
terminated
消息处理程序中的逻辑