我正在使用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
答案 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,我认为语法与其他框架相同