我使用Capybara和webkit进行测试,但出于某种原因,当测试失败时,它会显示错误,但不会显示错误。
Failures:
1) online shopping - sign up
Failure/Error: page.should have_content 'Payment added successfully'
expected there to be content "Payment added successfully" in "Internal Server Error undefined method `client_id' for #<InvoicePayment:0x007fbd5b834008> WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) at 127.0.0.1:60324"
# ./spec/requests/online_shopping_spec.rb:140:in `block (2 levels) in <top (required)>'
当使用save_and_open_page
时,它只显示错误,但没有关于它出现位置的信息:
内部服务器错误
未定义的方法`client_id&#39;为# WEBrick / 1.3.1(Ruby / 1.9.3 / 2012-04-20)at 127.0.0.1:60324
我期待看到的是发生错误的行号和功能:
app / controllers / invoices_controller.rb:30:在`show&#39;
我似乎无法在Google上找到与此相关的任何内容。我可能使用了不正确的命名法。有谁知道如何解决这个问题?
答案 0 :(得分:8)
基本上,水豚没有关于应用程序的知识,因为它在不同的过程中运行。您可以使用此处描述的技巧https://gist.github.com/1443408
来解决此问题答案 1 :(得分:3)
问题是由于错误导致实际页面无法呈现,而是出现内部服务器错误。因此Internal Server Error undefined method...
是您正在测试的网页的内容。 RSpec / Capybara无法告诉您它出现在何处,因为测试框架只测试您在页面上看到的内容,这正是您所看到的(正如您在运行save_and_open_page
时所确认的那样)。
要追踪错误,您应该查看rails错误日志或运行它的控制台/终端。没有更多信息,我无法帮助您追踪错误。
希望有所帮助。