繁体   English   中英

Rspec和铁路观察员

[英]Rspec and observers in rails

目前正为我的模型编写一些测试。 我有一个名为Blog的模型,当用户创建博客时,观察者将消息发布到用户的新闻源。 我的一项测试测试了这项工作。 然而,这个测试在测试环境中失败了,在控制台中做同样的事情完美无瑕地工作,这使我相信rspec正在快速行动而不是等待观察者完成它的事情。 有办法解决这个问题吗? 我试过睡觉,但似乎没有工作。

这是一般设计。

博客创建了Observer通知并创建了一个新的Newsfeed并传递了新的Blog对象。在创建触发时,新闻源会通过调用Blog对象上的方法获得正确的新闻源消息。 Newsfeed将博客添加到newsfeed_items列表并自行保存。

规范失败是因为它不等待观察者完成它的任务并调用其after方法有效地删除对象,然后新闻源对象可以从中获取消息。

观察者不是异步的(除非您在观察者回调中排队异步作业)。 观察到的模型本身就是回调方法的发送者。 您的观察者似乎更有可能在您的测试中观察。

你有没遇到这个帖子? 它有用吗?
您如何在Ruby on Rails应用程序中使用rSpec测试观察者?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM