我有一个调用生成块的控制器操作
class MyController < ApplicationController
....
def send_product_mails
if @user.has_rights?
spawn_block(:nice => 19 ) do
@current_product.send_mail
end
end
end
...
end
我想指定在@current_product 上调用了 send_mail,但它告诉我它没有收到它。应该怎么做?
我的规格看起来像这样:
it "works with spawn" do
# Setup: create Product, Usersession (via UserSession.create(user))
get :send_product_mails, :id => product.id
MyController.any_instance.should_receive(:spawn_block).and_yield("sd")
end
我想指定spawn_block
如果用户拥有权限,则将某些内容传递给,否则不会。现在有不同的尝试(.should_receive
在 MyController、MyController.any_instance、@controller 上调用测试,无论是否使用 and_yield,这总是会给出spawn_block
未收到消息的错误。(是的,我通过添加在 if 语句中放置调试输出。)
编辑:为问题提供更多上下文和代码,以及我尝试过的内容