使用RSpec和Capybara进行测试时出现问题

时间:2018-08-21 13:37:50

标签: ruby-on-rails rspec capybara

我是Capybara和RSpec代码的新手,并且面临一些奇怪的问题。

我有一个名为bill_of_lading的资源。在耙路中,我得到了:

 bill_of_ladings GET    /bill_of_ladings(.:format)                               bill_of_ladings#index
                                 POST   /bill_of_ladings(.:format)                               bill_of_ladings#create
              new_bill_of_lading GET    /bill_of_ladings/new(.:format)                           bill_of_ladings#new
             edit_bill_of_lading GET    /bill_of_ladings/:id/edit(.:format)                      bill_of_ladings#edit
                  bill_of_lading GET    /bill_of_ladings/:id(.:format)                           bill_of_ladings#show
                                 PUT    /bill_of_ladings/:id(.:format)                           bill_of_ladings#update
                                 DELETE /bill_of_ladings/:id(.:format)                           bill_of_ladings#destroy

在我的Rspec中,我试图测试新提单的创建(一切都可在网络应用程序上完成)

这是我的测试场景:

RSpec.feature "Creating Bill of Lading" do
    scenario "A user creates a new Bill of Lading" do

    visit('/bill_of_ladings')

    click_link "New Bill of Lading"
end

在我的bill_of_ladding / index.erb中,我有:

<%=link_to "New Bill of Lading",new_bill_of_lading_path(),:title => "New Bill of Lading",:class => "btn btn-primary"%>

运行rspec时出现此错误:

失败:

  1) Creating Bill of Lading A user creates a new Bill of Lading
     Failure/Error: click_link "New Bill of Lading"
     Capybara::ElementNotFound:
       Unable to find link "New Bill of Lading"

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

这里的问题是:

我放了一条调试线来检查current_path。它得到:


/ spud / user_session / new


因此,当然,该页面已被重定向到登录页面,但没有找到链接。

结束问题。