小编Fig*_*llo的帖子

具有视图测试和嵌套资源的Rspec和Rails

我正在使用Yahoo Answers类别的应用程序来提高我的Rails技能.到目前为止,我已经设置了两个模型"问题"和"答案",它们以这种方式嵌套:

  resources :questions do
    resources :answers
  end
Run Code Online (Sandbox Code Playgroud)

我已经对控制器,模型和问题的观点进行了测试,但是我对答案的视图和嵌套路线有点麻烦.我正在使用Rspec和Factory女孩.

我有以下测试:

describe "answers/new.html.erb" do
  before(:each) do
    @question = Factory(:valid_question)
    @answer = Factory(:valid_answer)
    assign(:question, @question)
    assign(:answer, stub_model(Answer,
      :text => "MyString",
      :question_id => 1
    ).as_new_record)
  end

  it "renders new answer form" do
    render
    assert_select "form", :action => question_answers_path(@question), :method => "post" do
      assert_select "textarea#answer_text", :name => "answer[text]"
      assert_select "input#answer_question_id", :name => "answer[question_id]"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

每当我运行测试时,我收到以下消息:

  3) answers/new.html.erb renders new answer form
     Failure/Error: render
     ActionView::Template::Error:
       No route matches {:controller=>"answers"}
     # ./app/views/answers/new.html.erb:6:in `_app_views_answers_new_html_erb__3175854877830910784_6513500'
     # …
Run Code Online (Sandbox Code Playgroud)

rspec views ruby-on-rails nested-resources factory-bot

5
推荐指数
1
解决办法
1504
查看次数