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

Jos*_*eim 5 specifications controller nested ruby-on-rails

我有一个ReportsController嵌套ProjectsController#show方法:

def show
  # Some stuff

  do_something(@report)
end
Run Code Online (Sandbox Code Playgroud)

路线:

resources :projects do
  resources :reports
end
Run Code Online (Sandbox Code Playgroud)

我需要测试该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
Run Code Online (Sandbox Code Playgroud)

我放置binding.pry#show动作中,但这不会被调用.那么我的规格有什么问题?

Jos*_*eim 2

问题是我没有登录:

  before do
    @user = create :user, :admin
    sign_in_as @user
  end
Run Code Online (Sandbox Code Playgroud)