为什么不是';rspec是否更详细?

为什么不是';rspec是否更详细?,rspec,Rspec,当我提出一个失败的期望时,我得到如下输出 Failure/Error: it { should have_selector 'div.panel.panel-error', text: "asd" } expected #has_selector?("div.panel.panel-error", {:text=>"asd"}) to return true, got false 这使得调试成为一个真正的小问题,尤其是当文本只是大写或有愚蠢的拼写错误时。我怎样才能让rsp

当我提出一个失败的期望时,我得到如下输出

 Failure/Error: it { should have_selector 'div.panel.panel-error', text: "asd" }
       expected #has_selector?("div.panel.panel-error", {:text=>"asd"}) to return true, got false
这使得调试成为一个真正的小问题,尤其是当文本只是大写或有愚蠢的拼写错误时。我怎样才能让rspec给我这样的输出:

 Failure/Error: it { should have_selector 'div.panel.panel-error', text: "asd" }
       expected #has_selector?("div.panel.panel-error", {:text=>"asd"}) to contain "You don't exist in our system!" true, got "You do not exist in Our system."
这是我可以添加到
.rspec
文件中的格式选项吗

以下是我目前的样子:

--color
--drb
--order default

--format progress
--format documentation

这并不是rspec配置的真正问题,它更多地与您所做的断言类型有关。您要求Capybara查找一个与CSS选择器匹配的元素,该选择器的元素类型为
div
、两个类和给定的文本。CSS选择器只会返回不匹配,因为选择器的三个部分中只有两个匹配,而且它从未检索到与
div.panel.panel.error
匹配的元素,因此无法比较字符串

为了获得您想要的更有用的输出类型,您需要按元素和类选择元素,即
div.panel.panel error
,然后假设存在该错误,您可以断言文本是它应该是的。尝试:

find('div.panel.panel-error').text.should == 'asd'
不过,两步版本并不十分优雅,因为您没有对测试主题做出直接的断言(在
页面