Почему этот тест спецификации / контроллера не пройдет? Это было раньше ... (Rails, RSpec) - PullRequest
0 голосов
/ 26 июля 2011

В моем файле spec / controllers / superadmin / users_controller_spec.rb содержится следующее:

  describe "GET index" do
    it "receives the where action twice" do
      User.should_receive(:where).twice
      get :index
    end

    it "assigns @superadmins" do
      get :index
      assigns[:superadmins].should_not be_nil
    end

    it "assigns @admins" do
      get :index
      assigns[:admins].should_not be_nil
    end
  end

В моем приложении / controllers / superadmin / users_controller.rb содержится следующее:

class Superadmin::UsersController < SuperadminController
  def index
    @superadmins = User.where(:role => 'superadmin')
    @admins = User.where(:role => 'admin')
  end
  ...
end

Если я правильно помню, этот тест проходил раньше.С тех пор, как я установил PostgreSQL в качестве базы данных для сред тестирования и разработки, этот тест не удался ... не знаю почему.

Сообщение об ошибке:

Failures:

  1) Superadmin::UsersController GET index receives the where action twice
     Failure/Error: User.should_receive(:where).twice
       (<User(id: integer, role: string, first_name: string, last_name: string, login: string, email: string, crypted_password: string, password_salt: string, persistence_token: string, single_access_token: string, perishable_token: string, login_count: integer, failed_login_count: integer, last_request_at: datetime, current_login_at: datetime, last_login_at: datetime, current_login_ip: string, last_login_ip: string, created_at: datetime, updated_at: datetime, restaurant_id: integer, organization_id: integer) (class)>).where(any args)
           expected: 2 times
           received: 0 times
     # ./spec/controllers/superadmin/users_controller_spec.rb:6:in `block (3 levels) in <top (required)>'

  2) Superadmin::UsersController GET index assigns @superadmins
     Failure/Error: assigns[:superadmins].should_not be_nil
       expected: not nil
            got: nil
     # ./spec/controllers/superadmin/users_controller_spec.rb:12:in `block (3 levels) in <top (required)>'

  3) Superadmin::UsersController GET index assigns @admins
     Failure/Error: assigns[:admins].should_not be_nil
       expected: not nil
            got: nil
     # ./spec/controllers/superadmin/users_controller_spec.rb:17:in `block (3 levels) in <top (required)>

Помощь приветствуется!

1 Ответ

1 голос
/ 29 июля 2011

В коде, который вы указали, я не вижу ничего, что могло бы провалить эти тестыЕсть ли у вас before_filters, которые могут не работать?Я предполагаю, что контроллер требует аутентификации.Вы устанавливаете это в своих тестах в блоке before?

...