Після помилки гаку в rspec

require 'spec_helper'

describe StudentsController do
  fixtures :all

  context "#profile" do
    let(:school) { Factory.create(:school_2) }

    before do
      session[:email] = user.email
      session[:user_id] = user.id
    end

    it "should assign the user to @user" do
      User.stub(:find).with(user.id).and_return(user)
      get :profile
      assigns[:user].should eql(user)
    end
  end
end

Помилка після підключення:

NoMethodError: undefined method `original_path_set' for nil:NilClass
occurred at /home/qbadmin/.rvm/gems/ruby-1.9.3-p194/gems/rspec-rails-2.13.1/lib/rspec/rails/view_rendering.rb:121:in `block (2 levels) in '

Це помилка, отримана при запуску команди rspec spec з командного рядка. Чи може хто-небудь допомогти мені з'ясувати, яка проблема?

Версії RSpec, які я вказав у Gemfile, є:

gem 'rspec', '~> 2.13',
gem 'rspec-rails', '~> 2.13'

Заздалегідь спасибі.

0
Ви написали, що це відбувається в after_hook - я не бачу жодного після гачок в наданому вам коді.
додано Автор BroiSatse, джерело
Ви написали, що це відбувається в after_hook - я не бачу жодного після гачок в наданому вам коді.
додано Автор BroiSatse, джерело
Ви написали, що це відбувається в after_hook - я не бачу жодного після гачок в наданому вам коді.
додано Автор BroiSatse, джерело
Ви можете надати якийсь код, будь ласка?
додано Автор Pierre-Louis Gottfrois, джерело
Ви можете надати код вашої специфікації, будь ласка
додано Автор Pierre-Louis Gottfrois, джерело
Ви можете надати код вашої специфікації, будь ласка
додано Автор Pierre-Louis Gottfrois, джерело
Ви можете надати код вашої специфікації, будь ласка
додано Автор Pierre-Louis Gottfrois, джерело
будь ласка, оновіть своє запитання, щоб включити кодекс, який ви щойно надали, і, нарешті, скористайтеся маркетингом synax, щоб відступити від вашого коду :)
додано Автор Pierre-Louis Gottfrois, джерело
будь ласка, оновіть своє запитання, щоб включити кодекс, який ви щойно надали, і, нарешті, скористайтеся маркетингом synax, щоб відступити від вашого коду :)
додано Автор Pierre-Louis Gottfrois, джерело
будь ласка, оновіть своє запитання, щоб включити кодекс, який ви щойно надали, і, нарешті, скористайтеся маркетингом synax, щоб відступити від вашого коду :)
додано Автор Pierre-Louis Gottfrois, джерело
Ви отримуєте помилку під час запуску rspec spec , яка запускає всі своїх тестів. Чи є причина, до якої ви включили код цього конкретного тесту StudentsController ? Чи існує особлива причина того, що тести повинні бути релевантними, або це просто випадкова перевірка, яку ви вибрали для включення?
додано Автор Amit Kumar Gupta, джерело
Ви отримуєте помилку під час запуску rspec spec , яка запускає всі своїх тестів. Чи є причина, до якої ви включили код цього конкретного тесту StudentsController ? Чи існує особлива причина того, що тести повинні бути релевантними, або це просто випадкова перевірка, яку ви вибрали для включення?
додано Автор Amit Kumar Gupta, джерело
Ви отримуєте помилку під час запуску rspec spec , яка запускає всі своїх тестів. Чи є причина, до якої ви включили код цього конкретного тесту StudentsController ? Чи існує особлива причина того, що тести повинні бути релевантними, або це просто випадкова перевірка, яку ви вибрали для включення?
додано Автор Amit Kumar Gupta, джерело
Це просто випадковий тест, який я вибрав для включення. Ця проблема виникає, коли я просто запускаю специфікації. Це показує певний шлях до помилки. Я не знаю, чи це пов'язано з моїм специфікаційним кодом. @ AmitKumarGupta
додано Автор Shabz, джерело
Це просто випадковий тест, який я вибрав для включення. Ця проблема виникає, коли я просто запускаю специфікації. Це показує певний шлях до помилки. Я не знаю, чи це пов'язано з моїм специфікаційним кодом. @ AmitKumarGupta
додано Автор Shabz, джерело
Це просто випадковий тест, який я вибрав для включення. Ця проблема виникає, коли я просто запускаю специфікації. Це показує певний шлях до помилки. Я не знаю, чи це пов'язано з моїм специфікаційним кодом. @ AmitKumarGupta
додано Автор Shabz, джерело
`require 'spec_helper' описати StudentsController do fixtures: весь контекст" #profile "do let (: school) {Factory.create (: school_1)} перед проведенням сеансу [: email] = user.email session [: user_id] = user. id end it "повинен призначити користувача користувачеві @ user.stub (: find) .with (user.id) .and_return (user) get: профіль призначає [: user]. should eql (user) end end end"
додано Автор Shabz, джерело
`require 'spec_helper' описати StudentsController do fixtures: весь контекст" #profile "do let (: school) {Factory.create (: school_1)} перед проведенням сеансу [: email] = user.email session [: user_id] = user. id end it "повинен призначити користувача користувачеві @ user.stub (: find) .with (user.id) .and_return (user) get: профіль призначає [: user]. should eql (user) end end end"
додано Автор Shabz, джерело
`require 'spec_helper' описати StudentsController do fixtures: весь контекст" #profile "do let (: school) {Factory.create (: school_1)} перед проведенням сеансу [: email] = user.email session [: user_id] = user. id end it "повинен призначити користувача користувачеві @ user.stub (: find) .with (user.id) .and_return (user) get: профіль призначає [: user]. should eql (user) end end end"
додано Автор Shabz, джерело
Коли я даю команду "rspec spec" у терміналі, вона створює помилку, подібну до вищенаведеного. Він постійно відображається для всього специфікації. Коли перевірено шлях до помилки, існує метод, який називається original_path_set. Але не знаю, як це виправити.
додано Автор Shabz, джерело
Коли я даю команду "rspec spec" у терміналі, вона створює помилку, подібну до вищенаведеного. Він постійно відображається для всього специфікації. Коли перевірено шлях до помилки, існує метод, який називається original_path_set. Але не знаю, як це виправити.
додано Автор Shabz, джерело
Коли я даю команду "rspec spec" у терміналі, вона створює помилку, подібну до вищенаведеного. Він постійно відображається для всього специфікації. Коли перевірено шлях до помилки, існує метод, який називається original_path_set. Але не знаю, як це виправити.
додано Автор Shabz, джерело

6 Відповіді

Я мав цю точну проблему донині.

Виявилося, що я забув зробити rake db: test: prepare після зміни бази даних, перш ніж запустити тестовий набір знову.

2
додано
Я не думаю, що це загальна відповідь, це може бути причиною вашої локальної настройки. Також може стати причиною того, що настройка очищення баз даних не працює належним чином. Оскільки гачки в основному довільний код, який ви хочете виконати до і після кожного прикладу.
додано Автор V K Singh, джерело

Я мав цю точну проблему донині.

Виявилося, що я забув зробити rake db: test: prepare після зміни бази даних, перш ніж запустити тестовий набір знову.

2
додано
Я не думаю, що це загальна відповідь, це може бути причиною вашої локальної настройки. Також може стати причиною того, що настройка очищення баз даних не працює належним чином. Оскільки гачки в основному довільний код, який ви хочете виконати до і після кожного прикладу.
додано Автор V K Singh, джерело

Я мав цю точну проблему донині.

Виявилося, що я забув зробити rake db: test: prepare після зміни бази даних, перш ніж запустити тестовий набір знову.

2
додано
Я не думаю, що це загальна відповідь, це може бути причиною вашої локальної настройки. Також може стати причиною того, що настройка очищення баз даних не працює належним чином. Оскільки гачки в основному довільний код, який ви хочете виконати до і після кожного прикладу.
додано Автор V K Singh, джерело

У вашому gemfile ви повинні мати щось подібне, щоб rspec правильно працював

group :test, :development do
  gem 'rspec-rails', '~> 2.13.2'
end

Я також пропоную вам ознайомитись з database_cleaner gem

group :test do
  gem 'database_cleaner', '~> 1.0.1'
end

Що стосується вашої проблеми, після невеликих досліджень, здається, існує проблема з тим, як rspec отримує шлях до вашого специфікаційного файлу. Ви можете підтвердити, що вказані вище характеристики написані в наступному файлі?

spec/controllers/students_controller_spec.rb

Не могли б ви скопіювати/вставити код контролерів, будь ласка?

1
додано

У вашому gemfile ви повинні мати щось подібне, щоб rspec правильно працював

group :test, :development do
  gem 'rspec-rails', '~> 2.13.2'
end

Я також пропоную вам ознайомитись з database_cleaner gem

group :test do
  gem 'database_cleaner', '~> 1.0.1'
end

Що стосується вашої проблеми, після невеликих досліджень, здається, існує проблема з тим, як rspec отримує шлях до вашого специфікаційного файлу. Ви можете підтвердити, що вказані вище характеристики написані в наступному файлі?

spec/controllers/students_controller_spec.rb

Не могли б ви скопіювати/вставити код контролерів, будь ласка?

1
додано

У вашому gemfile ви повинні мати щось подібне, щоб rspec правильно працював

group :test, :development do
  gem 'rspec-rails', '~> 2.13.2'
end

Я також пропоную вам ознайомитись з database_cleaner gem

group :test do
  gem 'database_cleaner', '~> 1.0.1'
end

Що стосується вашої проблеми, після невеликих досліджень, здається, існує проблема з тим, як rspec отримує шлях до вашого специфікаційного файлу. Ви можете підтвердити, що вказані вище характеристики написані в наступному файлі?

spec/controllers/students_controller_spec.rb

Не могли б ви скопіювати/вставити код контролерів, будь ласка?

1
додано