Канкан 'load_and_authorize_resource' вызывает Model.new, вызывая неожиданные сбои в тестах RSpec - PullRequest
0 голосов
/ 08 декабря 2011

Используя RSpec и Cancan, у меня есть этот тест, который не проходит с:

Failure/Error: User.should_receive(:new).and_return(@user)
expected: 1 time
received: 2 times

из-за load_and_authorize_resource, кажется, также вызывает 'new' для объекта. Как мне обойти это?

it "creates a new staff member" do
  User.should_receive(:new).and_return(@user)
  get :new, :format => "js"
end

-

 class Admin::UsersController < ApplicationController

    load_and_authorize_resource

    def new
      @user = User.new()
      respond_to do |format|
        format.js { render :action => "new" }
      end
    end
  end

1 Ответ

1 голос
/ 08 декабря 2011

Хорошо:

  • либо заменить load_and_authorize_resource на authorize_resource

Или:

  • удалить @user = User.new() (который содержит ненужные скобки)

Вы определенно делаете вещи здесь дважды.

...