运行Rake测试时出现404错误

时间:2018-06-18 14:30:26

标签: ruby-on-rails ruby ruby-on-rails-5

我正在使用rails 5并尝试运行一些基本测试。我更新了database.yml以使用相同的数据库,无论是在开发环境还是测试环境中。

以下测试返回404错误但是当我启动我的开发服务器并转到相同的URL时,一切正常。到目前为止,我运行的所有测试都查询数据库返回404错误。

这是我的一项测试。

test "should get cms page" do
    get "/reviews"
    assert_response :success
end

错误:

....E

Error:
StaticPagesControllerTest#test_should_get_cms_page:
ActiveRecord::RecordNotFound: ActiveRecord::RecordNotFound
app/controllers/static_pages_controller.rb:16:in `cms_page'
test/controllers/static_pages_controller_test.rb:11:in `block in <class:StaticPagesControllerTest>'


bin/rails test test/controllers/static_pages_controller_test.rb:10

1 个答案:

答案 0 :(得分:3)

如果您为示例页面创建了一个夹具,请让它调用它&#39; review_page&#39;,然后尝试

test "should get cms page" do
  before do
    allow(StaticPage).to receive(:find).and_return(review_page)
  end
  ...

end

假设StaticPage模型在您的控制器中接收find - 没有其余的控制器代码,它无法分辨

编辑:以上适用于RSpec,我认为语法与其他框架相同