RSpec:应该has_content找不到文本

时间:2014-05-16 13:32:02

标签: ruby-on-rails rspec cucumber

我有以下页面

<ul class="account_menu dropdown-menu">
    <li class="divider"></li>
    <li class="current"><span>My account</span></li>
    <li class="account"><a href="#">account-1 (Editor)</a></li>
</ul>

使用此步骤使用Cucumber进行测试

within(scope) do
    page.should have_content(content)
end

当内容=&#39; account-1&#39;并且内容错误=&#39;我的帐户&#39;。范围是两种情况都是&#39; account_menu&#39;

And he should see "My account" within account menu

expected to find text "My account" in "My Accountaccount-1 (Editor)"
(RSpec::Expectations::ExpectationNotMetError)
  • rails 3.2.17
  • rspec-rails 2.14.1
  • capybara 2.1.0

为什么它无法找到我的帐户&#39;文本?感谢

1 个答案:

答案 0 :(得分:4)

have_content有时最终会以意想不到的方式连接内容。在你的情况下

<li class="current"><span>My account</span></li>
<li class="account"><a href="#">account-1 (Editor)</a></li>

成为“我的Accountaccount-1(编辑)”

如果您尝试

expect("My Accountaccount-1 (Editor)").to have_content("My account")

它也会失败,这在技术上是正确的,因为“我的帐户”不在字符串中。另一种方法是使用match匹配器或测试连接字符串(丑陋)。