测试与字段关联的错误文本

时间:2013-03-21 21:07:00

标签: ruby cucumber capybara capybara-webkit gherkin

在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>

(当然还有很多其他领域!)

我想测试Title实际上是必需的,当用户留空并单击提交按钮时,会出现错误消息“不能为空”。如果没有调整simple_form以包装整个事物,是否有办法简单地找到标签,然后转到DOM中的下一个元素,看看它是否具有“不能为空”的内容?

1 个答案:

答案 0 :(得分:1)

我不确定你真的需要那样做。测试用例应该在页面上只有一条错误消息。您可以使用其他测试来检查多个错误消息,但应该有一个特定于此方案的测试。然后执行该操作以检查span.error文本是否在页面上并且包含文本不能为空的测试应该就足够了。

page.should have_selector('span.error-text', text: "can't be blank")