Rails:在 RSpec 测试查看编辑表单时出错

Posted

技术标签:

【中文标题】Rails:在 RSpec 测试查看编辑表单时出错【英文标题】:Rails: Get error on RSpec testing View edit form 【发布时间】:2021-12-26 14:32:05 【问题描述】:

我在使用 RSpec 进行测试时遇到了一些错误。这是我的代码:

\spec\views\post_categories\edit.html.haml_spec.rb

require 'rails_helper'

RSpec.describe "post_categories/edit", type: :view do
  before do
    login_user
    @post_category = FactoryBot.create(:post_category)
  end

  it "renders the edit post_category form" do
    render
    assert_select "form[method=?]", "post" do
      assert_select "input[name=?]", "post_category[title]"
      assert_select "textarea[name=?]", "post_category[description]"
    end
  end
end

之后出现这样的错误:

    post_categories/edit 呈现编辑 post_category 表单

    失败/错误:= simple_form_for(@post_category) do |f|

    ActionView::Template::Error: 没有路线匹配 :action=>"show", :controller=>"post_categories", :locale=>#,缺少必需的键:[:id]

    你的意思是? post_category_url admin_post_category_url

@post_category 存在且正确,但 simple_form 在测试中不起作用 为什么@post_category 进入 :locale 以及如何修复?

【问题讨论】:

如果没有被测代码(就像几乎所有问题一样),这个问题就无法回答。我们需要视图和您的路线。 【参考方案1】:

我将所有link_to <subject> 更改为link_to <subject>_path(id: subject.id) 为什么需要 rspec 我不知道

【讨论】:

以上是关于Rails:在 RSpec 测试查看编辑表单时出错的主要内容,如果未能解决你的问题,请参考以下文章

在rails 2.3+中测试(rspec)嵌套模型部分

在 Rails 的 rspec 中,我如何编写/编辑我的测试文件,以便特定上下文中的示例以设定的顺序运行?

Rails 教程 - Ch. 5 更漂亮的测试 Rspec

设置 RSpec 以测试 gem(不是 Rails)

如何使用rails cucumber,rspec,capybara在视图(dhtml)中测试动态部分?

使用 RSpec 测试 Rails 辅助方法时如何在参数哈希中设置值?