gpt4 book ai didi

ruby-on-rails-3 - 使用 rspec 测试 after_create Hook

转载 作者:行者123 更新时间:2023-12-04 20:53:41 24 4
gpt4 key购买 nike

我的模型(RoR 3.0.x)中的代码或多或少是这样的:

class Message

after_create :notify

protected

def notify
if visible?
Notifier.message_from_portfolio( user, self ).deliver
else
Notifier.invisible_message_from_portfolio( user, self ).deliver
end
end

end

我正在使用最新的 rspec gem 来测试它。
问题是我无法测试通知方法:如果我直接测试它,我不能因为它受到保护,如果我创建一条消息并设置期望它不起作用,因为显然即使 rspec 运行通知方法我无法及时接听电话。

我的规范是:
describe :notification do
it "should send the whole message by email when visible" do
u = Factory.create( :user, :account_type => 1 )
message = u.messages.build( :body => "Whatever", :author => "Nobody", :email => "test@example.com" )
Notifier.should_receive( :message_from_portfolio )
message.save
end
end

对象通知程序从不接收 message_from_portfolio。我究竟做错了什么?建议?

最佳答案

Factory.create已经保存了消息,所以它没有被创建,只是被保存了。将其替换为 Factory.build一切都应该没问题。

关于ruby-on-rails-3 - 使用 rspec 测试 after_create Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com