rspec检查是否呈现视图

时间:2016-12-02 18:33:05

标签: ruby-on-rails rspec

我有这样的代码:

   shared_examples "admin common actions" do |resource|

      describe "logged admin" do
        login_admin

        describe 'GET #index' do
          it 'responds with 200' do
            get :index, :format => :html
            expect(response).to have_http_status(200)
          end
        end
      end
    end

所以我期待以防万一我的视图有一些错误并且不会导致测试失败导致服务器返回500.在我的情况下测试传递时不显示视图。我检查了网址,没关系。那么我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题是rspec在运行控制器测试时默认情况下不会实际呈现视图,以便将控制器操作的单元测试与渲染视图隔离开来。理想情况下,视图的渲染应该是视图规范的关注点。

但是,如果你真的想在你的控制器中测试它,你可以告诉rspec渲染视图。这不会生成内部Web服务器500状态代码,它会抛出异常,因此您可以通过测试没有引发异常而不是测试状态500来确保它正确呈现视图。

rmdir()