我有一个RoR页面,其中包含一些黄瓜测试。该页面似乎正常工作。 人们访问该页面所需要的链接是:
= link_to "Override Password", edit_admin_client_password_path(@client), :class => "button"
我认为应该执行的黄瓜步骤似乎给了我空的HTML ...
Given /^I navigate to the Clients Password Page for "(.*?)"$/ do |client_email|
@current_client = Client.find_by(email: client_email)
visit edit_admin_client_password_path(@current_client)
puts edit_admin_client_password_path(@current_client)
puts Capybara.current_session.html
end
这给了我:
/admin/client_passwords/1/edit
<html><head></head><body></body></html>
我认为用户是用户1,因为它是由测试生成的。我之前已经检查过,并且用户1似乎有正确的电子邮件等。
当我在网页上转到http://localhost:3000/admin/client_passwords/6203/edit
时,它将转到正确的位置,我认为这是正确的事情。
那么,为什么这会给我一个空的HTML?
ETA:访问 IS 更改页面。访问之前,html是主页...
ETA 2:@ thomas-walpole发表评论后,看来我正在登录,我在正确使用控制器,并在尝试正确生成视图。
但是:当我在视图haml.html文件中添加-puts“ foobie”时,我有:
- puts "foobie"
- password = Curl::Easy.perform("http://www.dinopass.com/password/simple").body_str
- puts "bletch"
我得到了“愚蠢”但没有得到“ bletch”。
我正在使用路缘石。有没有CURL在黄瓜测试中不起作用的事情?
ETA 3:
我已经编辑了- password =
行:
- password = @client.id != 1 ? Curl::Easy.perform("http://www.dinopass.com/password/simple").body_str : 'Password1'
假设userID 1在实际系统中实际上不存在。...可能有更好的方法进行测试...