如何强制队列同步运行测试?

时间:2014-06-03 23:05:41

标签: ruby testing rspec observer-pattern

我们有一个发送消息的应用,并请求确保消息发送的规范。

我们正在为消息添加排队系统。每条消息都存储在db中,然后进行处理和删除。记录在另一个进程中异步排队。所以规格现在失败了。

自动处理规范队列的好方法是什么?

一种方法是将一个观察者添加到队列中,该队列在排队时自动处理每个消息。但是我不确定这样做是否有意义,特别是因为它仅用于测试。

处理此问题的好方法是什么?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这一点,那么您的规范会创建一条消息并发送,然后以某种方式验证它是否已发送。现在,您要将应用程序更改为队列消息并稍后发送。您之前有过一个功能(发送消息),现在您有两个功能(1.排队消息; 2.发送消息)。

我说规格应该单独测试这些功能,即一个验证新创建的邮件是否排队的规范,另一个规范验证是否发送了任何排队的邮件。这将使规范更容易实现,规范将更好地反映应用程序的行为。