如何测试演员?

时间:2015-12-18 20:27:49

标签: ponylang

我如何测试演员?由于调用不是同步的,并且一条消息可能导致发送多条消息,测试它的方法是什么?

E.g。如何测试我的演员发送了3条消息以响应另一条消息?

1 个答案:

答案 0 :(得分:1)

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

actor MyActor
  be do_stuff(receiver: MyReceiver)

使用一种模式,在这种模式中,您可以组合一个计时器(用于超时)和一个包装器actor,它提供MyReceiver来测试该actor是否确实发送了预期的消息或消息序列。

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