0

我将以下代码作为 .erb 文件:

<div class="gridster">
<form>
    <fieldset>
        <legend>Add Repository</legend>
        <div class="field">
          <label for="gitrepoURL">GitHub URL</label>
      <input type="url" name="GithubRepo" id="gitrepoURL" placeholder="http://github.com/<organization>/<repo>" required/>
        </div>
        <div class="field">
          <input type="button" name="Add" id="add" value="Add Repository" class="add" />
        </div>
    </fieldset>
</div>

在一个黄瓜单元测试用例中,我写道:

When /^I update the input field with a github url $/ do
  visit '/github/index' 
  fill_in "field[GithubRepo]", :with => "http://github.com/name1/name2"
end

我知道我使用不正确的 dom 来访问 GithubRepo。我尝试在 firebug 中查找以正确访问 GithubRepo 字段以填充 url,但不能,当使用 cucumber 运行测试用例时,它说

When(/^I update the input field with a github url$/) do
  pending # express the regexp above with the code you wish you had
end

并停止执行低于此测试用例的测试用例。让我知道我的理解是否错误。如果我是对的,请告诉我如何访问 dom 元素,以便我可以使用它来访问其他元素并编写其他测试用例

4

1 回答 1

4

我认为您在 Cucumber 步骤中有两个问题:

  1. 正则表达式中有一个额外的空格,这就是 Cucumber 找不到该步骤的原因。
  2. 传递给的值fill_in不正确 - 它应该是名称、ID 或标签文本。

尝试以下操作:

When /^I update the input field with a github url$/ do
  visit '/github/index' 
  fill_in "GithubRepo", :with => "http://github.com/name1/name2"
end

注意到进行了以下更改:

  1. 空格在正则表达式的末尾被删除(即在 url 和 $ 之间)。
  2. fill_in已更改为使用该字段的名称。
于 2013-06-10T21:05:12.593 回答