转到RoR上的黄瓜测试中的正确页面时出错

时间:2018-07-10 21:26:31

标签: ruby-on-rails cucumber

我有一个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在实际系统中实际上不存在。...可能有更好的方法进行测试...

0 个答案:

没有答案