Mat*_*iby 5 ruby tdd ruby-on-rails cucumber ruby-on-rails-3
我有:
When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
with_scope(selector) do
click_link(link)
end
end
Run Code Online (Sandbox Code Playgroud)
我打电话给:
Background:
Given I am an existing admin user
When I follow "CLIENTS"
Run Code Online (Sandbox Code Playgroud)
我的HTML是这样的:
<a class="active" href="/companies"><h2>CLIENTS</h2></a>
Run Code Online (Sandbox Code Playgroud)
我一直收到这个错误:
.F-.F--U-----U
(::) failed steps (::)
no link with title, id or text 'CLIENTS' found (Capybara::ElementNotFound)
(eval):2:in `click_link'
./features/step_definitions/web_steps.rb:54:in `block (2 levels) in <top (required)>'
./features/step_definitions/web_steps.rb:14:in `with_scope'
./features/step_definitions/web_steps.rb:53:in `/^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/'
features/client_add.feature:8:in `When I follow "CLIENTS"'
Run Code Online (Sandbox Code Playgroud)
我尝试过以下几点:
When I follow "<h2>CLIENTS</h2>"
Run Code Online (Sandbox Code Playgroud)
甚至尝试了save_and_open_page
应该打开浏览器并仍然得到相同的结果:
Given /^I am an existing admin user$/ do
role_user = FactoryGirl.create(:role_user)
admin_user = role_user.user
sign_in(admin_user)
save_and_open_page
end
Run Code Online (Sandbox Code Playgroud)
有没有办法打印HTML或某种方式来找出我的测试失败的原因?
我最喜欢调试黄瓜步骤的方法就是调用binding.pry
.
确保pry
gem包含在您的gem文件中:development, test
,然后将binding.pry
调用放在引发错误的行之前.然后,您应该能够反思与环境的ls
命令,如果你能找到水豚会话中运行你可以(如果水豚会话存储为一个名为页面变量)page.html
和page.text
看什么是可见的.
希望有所帮助.