rspec または cucumber でテストしている場合、属性を更新するたびに、変数を再度「リロード」する必要があります。
@answer.update_attributes(notified: false)
@answer = Answer.find(@answer)
そうしないと、@answer は更新されません。これは非効率に思えます。これは正しいですか?私は何か間違ったことをしていますか、それともこれが機能するはずの方法ですか?
編集:完全な仕様
describe "notify method" do
before (:each) do
@user = FactoryGirl.create(:user)
friend = generate_friend_for_user(@user)
@answer = FactoryGirl.create(:answer, user: friend, contact: @user.service)
@answer.update_attributes(notified: false)
@answer = Answer.find(@answer)
end
it "should send an email and update last_email field" do
@user.update_attributes(last_email: 25.hours.ago)
@answer.notify.should == true
@user = User.find(@user)
@user.last_email.should > 1.minute.ago
end