次の場合のように、値のないテキスト フォーム フィールドをどのようにテストしますか。
<input class="string required" id="student_name" name="student[name]"
size="50" type="text" />
値が存在するかどうかはわかっています。
<input class="string required" id="student_name" name="student[name]"
size="50" type="text" value="John" />
また、フォーム フィールドに「John」という名前が事前に入力されていることを次のようにテストして確認できます。
it "should display an enmpty field for the student name" do
rendered.should have_selector("input", :type => "text",
:name => "student[name]",
:value => "John")
end
「:value => nil」を指定してみましたが、うまくいきませんでした。
have_selector() に関するドキュメントは非常にスリムであるため、そこには何も見つけることができず、検索で例を見つけることもできませんでした (間違った用語で検索した可能性があります)。
提案に従って、私も試し:value => ''
ましたが、次のエラーメッセージが表示されます。
expected following output to contain a <input type='text' name='vendor[name]' value=''/>
試し:value => nil
てみると、次のエラーメッセージが表示されました。
NoMethodError:
undefined method `include?' for nil:NilClass
回答解決策は、 または のいずれか
を使用することでした。:value => ""
:value => ""
私の場合、最初はうまくいかなかったのは、Gemfile に webrat と capybara の両方の gem を含めていたためです。webrat を削除した後、両方のソリューションを使用して機能しました。