【问题标题】:How can I test (Minitest) that a (Rails) view contains a <td> element with a certain text?如何测试(Minitest)(Rails)视图是否包含具有特定文本的 <td> 元素?
【发布时间】:2015-11-24 16:14:19
【问题描述】:

当我简单地使用时

assert_select td, "test"

它似乎希望找到的第一个 td 元素具有值 test。

所以我尝试先在一个数组中选择所有这些,然后假设该数组 包含预期值:

assert_select 'td' do |elements|
  assert elements.include?("test")
end

但这对我也不起作用,因为它总是绿色的。我不确定 Rails 和 Ruby 的哪些部分在测试中可用,所以最后一个想法只是在黑暗中的一个镜头。

【问题讨论】:

  • 您的断言只是断言页面包含任何带有文本测试的 td 元素。如果你想检查某个元素,你应该使用普通的 css 选择器来指定它。例如,通过向 td 添加一个类并像这样检查它:assert_select "td.your_class", "test"
  • 这就是我想做的:查看页面上是否有包含文本“test”的 td 元素。但是按照我的理解,在我的第一个示例中,我测试找到的第一个 td 元素是否包含“test”。
  • 对不起,您是正确的,您需要指向确切的 td 才能测试内容。也许你可以用循环来做,但我认为这有点麻烦。
  • 如果您不关心它位于哪个单元格中,您也可以选择该表,然后断言它包含字符串“test”。

标签: ruby-on-rails minitest


【解决方案1】:

试试这个

assert_select 'td', /test/

看来您的 td in 不只包含测试。 // 会起作用,因为它将匹配而不是比较确切的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-16
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2017-01-13
    • 2014-05-25
    • 2019-10-27
    相关资源
    最近更新 更多