代码之家  ›  专栏  ›  技术社区  ›  Cannon Moyer

404运行rake测试时出错

  •  2
  • Cannon Moyer  · 技术社区  · 6 年前

    我正在使用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 回复  |  直到 6 年前
        1
  •  3
  •   Mark    6 年前

    如果你已经为一个示例页面创建了一个fixture,我们称之为“review_page”,然后尝试

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

    假设静态页面模型正在接收控制器中的查找——没有控制器代码的其余部分,这是不可能的。

    编辑:以上对rspec有效,我认为语法与其他框架相同