我正在试用Akka.net。到目前为止,我只是创建了一个简单的HelloWorld风格的应用程序。通常,我在我的开发中使用TDD方法,但是对于Akka.net,我不知道从哪里开始我的单元测试。
module之后,我意识到原始的Java/Scala框架使用了一个专用模块akka-testkit,这个模块在.Net端口中似乎是不可用的。
是否有人(特别是来自markedup.com的人)找到了为参与者进行单元测试的方法?
发布于 2014-09-08 14:21:27
现在有一篇关于如何使用Akka.NET进行单元测试的更完整和更好的文章-- https://petabridge.com/blog/how-to-unit-test-akkadotnet-actors-akka-testkit/
旧的Akka.Testkit已经被移植,我们的目标是尽快在Nuget上发布它。如果您想尝试一下,就必须从https://github.com/akkadotnet/akka.net下载源代码。
最好的方法是在Akka.NET中查看我们自己的单元测试,有一些来自JVM使用Akka.Testkit移植的规范,这应该会给出一些关于如何测试参与者系统的好例子。
例如,请参见:https://github.com/akkadotnet/akka.net/blob/dev/src/core/Akka.Tests/Actor/ActorLifeCycleSpec.cs#L116
发布于 2015-11-17 01:35:49
我目前正在为TestKit编写文档(应该在下周直播),但在此期间,我建议查看TestKit。它涵盖了核心和高级API特性,包括如何测试各种how模式、异步调用、虚拟时间、预定消息等(公开:我编写了它)。
发布于 2017-03-23 23:40:13
我一直在使用Akka.NET开发一个交易平台,我的测试套件是用xUnit2框架编写的,并实现了Akka.NET TeskKit。
Akka.TestKit用作基类,允许您实例化Sys.ActorOf。根据链接,这实际上是一个假的ActorSystem,我正在创建一个假的CommandBus (例如在帖子的底部),一个非常小的ReceiveActor,它只捕获被测试的SignalProcessorExit类发送的任何消息(由发送任何消息回自己的TestActor模拟)。然后可以检查消息的内容,以测试参与者的行为(因此,我并不是在查看实际的参与者本身,仅仅是验证其行为)。最初,我发现这与直觉背道而驰,但一旦您习惯了TestActor的工作方式,事情就变得简单了。
构造函数为每个测试生成一个新的夹具,包括拆卸和重建Sys.ActorOf测试ActorSystem。
我在这里使用ExpectNoMsg()和ExpectMsg(T)获取TestActor接收到的消息,并在此基础上进行断言。
https://stackoverflow.com/questions/25626060
复制相似问题