2

如何测试演员?由于调用不是同步的,一条消息会导致发送多条消息,那么测试的方法有哪些呢?

例如,我如何测试我的演员发送了 3 条消息以响应另一条消息?

4

1 回答 1

2

一般来说,除非它与您在构造或输入消息中提供的特征或接口交互,否则您无法测试参与者所做的事情。所以如果你有一个像下面这样的演员。

actor MyActor
  be do_stuff(receiver: MyReceiver)

您可以使用一种模式,在该模式中,您将计时器、超时和包装器参与者组合在一起,MyReceiver以测试参与者是否确实发送了预期的消息或消息序列。

Pony 已经包含了ponytest一些支持这种测试的包。您可以在 GitHub 上查看PonyTest 演员。基本上,您必须指定一个超时并确保您的一个演员调用complete测试助手中的成功。请注意,自上一个稳定版本以来,API 发生了变化。

于 2016-01-31T01:39:17.493 回答