tôi có mã trong mô hình của tôi (ROR 3.0.x) mà là nhiều hơn hoặc ít hơn như thế này:Testing móc after_create với rspec
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
Và Tôi đang sử dụng đá quý rspec mới nhất để kiểm tra nó. Vấn đề là tôi không thể kiểm tra phương thức thông báo: nếu tôi kiểm tra trực tiếp tôi không thể vì nó được bảo vệ, nếu tôi tạo thông báo và đặt kỳ vọng nó không hoạt động vì rõ ràng mặc dù rspec chạy thông báo metod Tôi không thể bắt kịp các cuộc gọi.
đặc tả của tôi là:
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 => "[email protected]")
Notifier.should_receive(:message_from_portfolio)
message.save
end
end
Đối tượng Notifier không bao giờ nhận được message_from_portfolio. Tôi đang làm gì sai? Gợi ý?
Nhưng 'u.messages.build' đã được sử dụng. Đó không phải là những gì bạn đề nghị? – lulalala