1

我正在浏览Hartl Rails 教程,并完成了 9.60、9.61、9.62 中的练习,这些练习要求重构新的和编辑带有新部分的表单代码。表单现在使用“提供”来提供按钮文本,如下所示:

<% provide(:button_text, 'Create my account') %>

在页面上以“yield”呈现,如下所示:

<%= f.submit yield(:button_text), class: "btn btn-primary" %>

虽然不是练习的一部分,但我并不是要编写一个集成测试来测试每个页面按钮上的正确文本。例如,此代码将测试注册表单页面:

test "signup page" do
  get signup_path
  assert_select "title", full_title("Sign up")
  assert_select "input[type=submit]", value: "Create my account"
end

但是,我无法找出选择按钮并为按钮文本指定正确值的正确代码。我使按钮文本不正确以尝试使测试失败,但没有找到在失败时成功的正确测试语法;-)

ActionDispatch 的文档没有对此测试用例有帮助的具体示例。

4

1 回答 1

1

好的,找到了我自己的答案。选择按钮和验证文本的正确方法:

test "signup page" do
  get signup_path
  assert_select "title", full_title("Sign up")
  assert_select "input[value=?]",  "Create my account"
end

我学到的是 1. 元素的属性应该用方括号括起来。2.使用“属性=?” 将该属性值与您正在测试的值相匹配:在本例中为“创建我的帐户”

于 2015-12-15T04:00:36.800 回答