3

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
4

1 に答える 1