Rails集成测试以选择是否存在正确的按钮文本



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

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

在页面上以"收益率"呈现,如所示

<%= 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的文档中没有对这个测试用例有帮助的特定示例。

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

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

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

相关内容

  • 没有找到相关文章

最新更新