代码之家  ›  专栏  ›  技术社区  ›  rwill781

使用Cumber测试轨道路线不工作

  •  0
  • rwill781  · 技术社区  · 7 年前

    [您好,这是我关于Stackoverflow的第一个问题,请耐心等待,我会尽可能多地提供详细信息。我刚开始编码,目前正在开发rails应用程序,我正在构建一个讨论板。到目前为止,我已经构建了我的用户模型和讨论模型,其中讨论属于用户,用户有很多讨论。我的测试在第10行失败,新讨论的链接似乎没有o设置到正确的路线,当我进入它时,它显示了正确的路径。然后在第15行,当前路径位于索引页上。。。所以我不确定我的测试是否写得很差,或者我是否错过了什么。我希望这和截图是足够的信息。。。我真的花了一天的时间在这上面,我已经不知所措了。。。非常感谢您的帮助。

    error message rails routes

    我的测试*

    # A user starts a new discussion
    Given("they click on the discussion link") do
    click_link 'DISCUSSIONS'
    end
    
    Then("they will be redirected to the discussions index page") do
    expect(current_path).to eq(user_discussions_path(@user.id))
    end
    
       When("they click on the new discussion link") do
       click_link 'New Discussion'
       end
    
      Then("they will be redirected to the new discussion page") do
      expect(current_path).to eq(new_user_discussion_path(@user.id))
      end
    

    讨论索引页*

    <div class="container">
      <div class="grid">
       <%= render 'discussions_navbar' %>
       <%= link_to "New Discussion", new_user_discussion_path %>
      </div>
    </div>
    

    测试电流_路径上的绑定撬*

    [1] pry(#<Cucumber::Rails::World>)> current_path
    => "/users/1715/discussions"
    [2] pry(#<Cucumber::Rails::World>)> new_user_discussion_path(@user.id)
    => "/users/1715/discussions/new"
    [3] pry(#<Cucumber::Rails::World>)> expect(current_path).to 
    eq(new_user_discussion_path(@user.id))
    RSpec::Expectations::ExpectationNotMetError:
    expected: "/users/1715/discussions/new"
    got: "/users/1715/discussions"
    

    绑定撬开新的讨论链接*

    [1] pry(#<#<Class:0x007fd3a62cf660>>)> new_user_discussion_path
    => "/users/1722/discussions/new"
    

    错误消息*

    When they click on the new discussion link                 # features/step_definitions/discussion_steps.rb:10
          undefined method `discussions_path' for #<#<Class:0x007fd3a62cf660>:0x007fd3a6681740> (ActionView::Template::Error)
          ./app/views/discussions/_form.html.erb:1:in `_app_views_discussions__form_html_erb__787511772381390310_70273503263920'
          ./app/views/discussions/new.html.erb:4:in `_app_views_discussions_new_html_erb___371545055918840709_70273503334040'
          ./features/step_definitions/discussion_steps.rb:11:in `"they click on the new discussion link"'
          features/discussion.feature:10:in `When they click on the new discussion link'
    

    新讨论表格*

    <%= simple_form_for @discussion do |d| %>
      <%= d.input :title, label: "Discussion Title" %>
      <%= d.input :description %>
      <%= d.button :submit %>
    <% end %>
    

    路线*

    用户讨论 GET/users/:user_id/discussions(.:format)讨论#索引

    POST/users/:user_id/discussions(.:format)讨论#创建 新建用户讨论 GET/users/:user_id/discussions/new(.:format)讨论#new

    1 回复  |  直到 7 年前
        1
  •  0
  •   WebDev    7 年前

    尝试:

    <%= simple_form_for [current_user, @discussion] do |d| %>