0
我期待在我的控制器中測試我的create
方法,檢查我的驗證和Flash消息是否設置正確。我至今是測試從控制器創建方法
it 'is invalid with invalid formatted email' do
@message = Message.new(FactoryGirl.attributes_for(:message_invalid_email))
@message.valid?
expect(@message.errors[:email].first).to eq("Don't forget to add your email address")
end
但我已經看到別人建立自己的測試樣
@message = post :create, message: { params1: value1 }
是這裏有什麼區別,我應如何檢測呢?
而且還當我嘗試和測試閃光的成功已經設置(使用早該寶石)
it 'is valid with correct parameters' do
@message = Message.new(FactoryGirl.attributes_for(:valid_message))
expect(@message).to be_valid
expect(controller).to set_flash[:success]
end
我得到這個錯誤
Expected the flash[:success] to be set, but no flash was set
這是我的控制器
def create
@message = Message.new(message_params)
respond_to do |format|
if @message.valid?
format.js { flash.now[:success] = "Thanks for your message, I'll be in touch soon" }
else
format.js { flash.now[:alert] }
end
end
end
任何建議/幫助讚賞
感謝
謝謝您的回答,我有一個'create.js.erb'文件,該文件規定在一個div中的Flash消息..我不斷收到'ActionController :: UnknownFormat:'當運行你的例子 – Richlewis
好吧,現在有一些調整,改變'expect(flash.now [:success] .now).to be_present 'to'expect(flash [:success])。to be_present'並且在後續操作中添加了'format::js' – Richlewis
爲什麼你需要'js'格式?不應該使用純文本或html文本?它是否允許'jsonp' ajax請求? – Wikiti