注*私は確信しているが、現在ここにRuby on Rails 2.3.8:機能テスト:数値はパラメータとして文字列として渡されませんか?
を重要ならば、私はポストを行うための準備をするには、以下のか、Factory_girlをいない使用しています:私は意図的に文字列に変換しています
p = Factory.build(:le_object, :template_id => t.id.to_s)
お知らせ
そして、私はちょうどあなたの通常のポストを行います、魚が何であるか、
post :create, :le_object => p.attributes
しかし、私は、テスト・ログに見たとき、私はこれを見ています。
Parameters: {"action"=>"create", ... "template_id"=>0, ... }
idが文字列ではないことに注意してください。
これは、フィールドにチェック()があるため(これはオプションなので)、コントローラーが壊れてしまい、コントローラーのメソッドが全く異なる動作をします。 DEV /生産の
それは実際には同じ方法としては、動作しているときに、アプリで正常に動作し、コンソール出力する:1がそれているため、文字列がどのようにここに
Parameters: {"action"=>"create", ... "template_id"=>"1"...}
お知らせフォームから来ており、HTTPではすべてが文字列です。
これは具体的には、失敗している私のコードでは何です:、現在
if not params[:le_object][:template_id].nil? and not params[:le_object][:template_id].empty?
問題、それは数を渡しているため、テストでは、代わりに文字列表現を、私はエラーを取得していますということですundefined method empty? for #:Fixnum
だから私はこれを動作させることができるように(テストなど)コードを変更するにはどうすればよいですか?
代わりに '.blank?'を使用するだけでなく、項目が 'nil'の場合はtrueを返し、空の文字列の場合はtrueを返します。 –
文字列に.blank?がありません。しかし、それは同じ問題です。数字に.blankがありませんか?方法。 – NullVoxPopuli