嵌套资源:控制器规范未调用所需的操作

Nested resource: controller spec doesn't call the wanted action

我有一个 ReportsController,嵌套在 ProjectsController 中,使用 #show 方法:

def show
  # Some stuff

  do_something(@report)
end

路线:

resources :projects do
  resources :reports
end

我需要测试是否调用了 do_something 方法:

  it 'calls do_something' do
    expect(controller).to receive(:do_something)

    project = create :project
    report = create :report, project: project

    get :show, params: {project_id: project.id, id: report.id}
  end

我在 #show 操作中放置了 binding.pry,但是没有调用它。那么我的规格有什么问题吗?

问题是我没有登录:

  before do
    @user = create :user, :admin
    sign_in_as @user
  end