代码之家  ›  专栏  ›  技术社区  ›  Jeff

测试是否缺少输入标记的值属性

  •  3
  • Jeff  · 技术社区  · 15 年前

    如何确认Rails rspec测试中没有HTML属性?

    我可以证明 input 标签有一个 value 属性,它是一个空字符串,如下所示:

    response.should have_tag("input[name=?][value=?]", "user[password]", "")
    response.should have_tag("input[name=?][value=?]", "user[password_confirmation]", "")
    

    但我要做的是验证输入字段没有 价值 属性(即空白字段)。

    3 回复  |  直到 13 年前
        1
  •  3
  •   Jeff    15 年前

    找出答案:

    response.should_not have_tag("input[name=?][value]", "user[password]")
    response.should_not have_tag("input[name=?][value]", "user[password_confirmation]")
    

    只使用一个 value 属性不带=?部分。所以如果 input 标签有一个 价值 属性,不管它包含什么,测试都将失败。

        2
  •  1
  •   Wendy    13 年前

    在不同的站点上有很多帖子指出has_tag返回一个错误,即没有has_tag这样的方法。

    我的解决方法是使用have_selector:

        response.should have_selector("input#user_password", :content => "")

    其中,user_password是所需输入标记(password字段)的id属性,我通过查看页面的源(在本例中是注册页面)找到了该属性,pound符号表示我正在使用输入标记的id字段。

    我通过将:content的值更改为“x”来验证这是否有效,我的测试失败了。

    使用 RSPEC轨道2.5.0 RSPEC 2.5.0

        3
  •  0
  •   Eimantas    15 年前

    怎么样 response.should_not have_tag("....")