Тестирование контроллера Rspec2 с помощью устройства - PullRequest
0 голосов
/ 17 октября 2011

В настоящее время я новичок в RSpec и пытаюсь реализовать некоторое тестирование контроллера с помощью RSpec

В моем приложении Rails я использую Devise в качестве своей системы аутентификации.Мой вопрос: когда мы тестируем контроллер, который использует какую-то систему аутентификации (в моем случае Devise), какова стандартная практика?

Это

1 - чтобы пропустить аутентификацию

или

2 - для проверки подлинности контроллера

в соответствии с вопросом, следующий мой контроллер

require File.dirname(__FILE__) + '/../spec_helper'

describe ProjectsController do
  include Devise::TestHelpers

  p "starting..."

  before(:each) do
    p "in before method"
    @request.env["devise.mapping"] = Devise.mappings[:user]
    sign_in Factory.create(:user)
  end

  it "should create a project" do
   p "should create a project"
  end

  after(:each) do
    @user.destroy unless @user.nil?
  end
end 

Я могу видеть только 'starting',Но почему он не собирается "in before method" и "should create a project"

Я использую Rspec2 и Rails2 в Ubuntu.

1 Ответ

0 голосов
/ 17 октября 2011

Проверьте это: Создание заглушки в rSpec и Rails3 .

Стандартная практика не пропускает аутентификацию, но эффективно проверяет, что правильный пользователь вошел в систему (для разработки).

Обращаясь к вашему коду: вы пытались создать какой-то реальный тест?Например, что-то такое простое, как

it "gets index" do
  get :index
  response.status.should be == 200
end

Я не уверен, почему вы не видите печатные заявления.Либо rspec пропускает пустой шаг (реального кода нет), либо потому, что что-то пошло не так.Но, честно говоря, я даже не уверен, что использование p внутри rspec работает.

Такой инструмент, как rubymine, позволяет вам легко отлаживать ваши спецификации, если вы захотите в него войти (что, по-моему, лучше, чемразбросано p заявлений).

...