0

Capybara + Webkit + Ruby 1.9.3では、次のHTMLがあります

simple_formは、特定のフィールドでエラーが発生した場合に以下を生成します。エラーテキストスパンを「取得」するのに問題があり、エラーが発生している可能性のある別のフィールドではなく、「タイトル」に関連付けられているスパンがあることを確認しています。

  <div class="input-wrapper string required error">
    <div class="input-label">
      <label class="string required" for="event_title">
        <abbr title="required">*</abbr>
        Title
      </label>
      <span class="error-text">can't be blank</span>
      <input id="event_title" class="string required" type="text" value="" size="50" name="event[title]">
  </div>

(もちろん、他の多くの分野も!)

タイトルが実際に必要であり、ユーザーが空白のままにして送信ボタンをクリックすると、「空白にすることはできません」というエラーメッセージが表示されることをテストしたいと思います。simple_formを微調整して全体をラップする以外に、ラベルを見つけてDOMの次の要素に移動し、そのスパンが「空白にできない」コンテンツであるかどうかを確認する方法はありますか?

4

1 に答える 1

1

あなたが本当にそれをする必要があるかどうかはわかりません。テストケースでは、ページにエラーメッセージが1つだけ表示されるようにする必要があります。複数のエラーメッセージをチェックする他のテストを行うことができますが、このシナリオに固有のテストが必要です。それを行うと、span.error-textがページ上にあり、テキストが空白にできないかどうかを確認するテストで十分です。

page.should have_selector('span.error-text', text: "can't be blank")
于 2013-03-22T17:54:40.817 に答える