Ruby on rails rails中的Rspec和观测者

Ruby on rails rails中的Rspec和观测者,ruby-on-rails,rspec,observer-pattern,Ruby On Rails,Rspec,Observer Pattern,目前正在为我的模型编写一些测试。 我有一个叫做Blog的模型,当用户创建一个Blog时,观察者会向用户的新闻提要发布一条消息。 我的一项测试表明这项工作正在进行。然而,这个测试在测试环境中失败了,在控制台中做同样的事情可以完美地工作,这让我相信rspec正在快速行动,而不是等待观测者完成它的工作。有什么办法可以解决这个问题吗?我试过睡觉,但似乎不起作用 这是总体设计 博客被创建 观察者注意并创建新的新闻提要并传递新的博客对象 create上的Newsfeeds被触发,它通过调用Blog对象上的方

目前正在为我的模型编写一些测试。 我有一个叫做Blog的模型,当用户创建一个Blog时,观察者会向用户的新闻提要发布一条消息。 我的一项测试表明这项工作正在进行。然而,这个测试在测试环境中失败了,在控制台中做同样的事情可以完美地工作,这让我相信rspec正在快速行动,而不是等待观测者完成它的工作。有什么办法可以解决这个问题吗?我试过睡觉,但似乎不起作用

这是总体设计

博客被创建 观察者注意并创建新的新闻提要并传递新的博客对象 create上的Newsfeeds被触发,它通过调用Blog对象上的方法来获取正确的newsfeed消息。 Newsfeed将博客添加到其Newsfeed_项目列表并保存自己


规范失败是因为它不等待观察者完成任务,并在newsfeed对象从其返回消息之前调用其有效删除对象的after方法。

观察者不是异步的(当然,除非您在观察者回调中排队等待异步作业)。观察到的模型本身就是回调方法的发送者。更可能的情况是,您的观察者在测试中没有观察到

你碰到这根线了吗?有什么用吗?

观察者就是观察者,有些模型工作,有些不工作。这一切都很奇怪,你知道这件事吗?我发现观察者钩子一次又一次地呼叫。。。