0

Я пытаюсь настроить новый проект Rails и столкнуться с некоторыми трудностями с помощью minitest, в частности с помощью программы. Я пытаюсь использовать пользовательские контроллеры для разработки, но в настоящее время я не могу их протестировать. Прямо сейчас я просто пытаюсь начать работу, поэтому мои тесты пустые. Как только я запускаю первый тест, он выдает эту ошибку.Rails 4- Разработать пользовательскую ошибку теста контроллера

Мой файл контроллера ('приложение/контроллеры/пользователи/registrations_controller.rb')

 


    class Users::RegistrationsController < Devise::RegistrationsController 
     # clear_respond_to 
     # respond_to :json 
    end 

 

Мой тестовый файл ('тест/контроллеры/пользователи/registrations_controller_tests.rb')

 


    require 'test_helper' 

    class Users::RegistrationsControllerTest < ActionController::TestCase 

     def setup 
     # @current_user = users(:one) 
     end 

     test 'POST #create will register a new user with a valid email and matching passwords' do 
     # params = { 
     # user: { 
     #  email: '[email protected]', 
     #  password: 'password', 
     #  password_confirmation: 'password', 
     #  format: :json 
     # } 
     # } 
     # post :create, params 
     # binding.pry 
     end 

    end 

 

Ошибка:

 


    1) Error: 
    RegistrationsControllerTest#test_POST_#create_will_register_a_new_user_with_a_valid_email_and_matching_passwords: 
    ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "controllers" does not exist 
    LINE 5:    WHERE a.attrelid = '"controllers"'::regclass 
              ^
    :    SELECT a.attname, format_type(a.atttypid, a.atttypmod), 
         pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod 
        FROM pg_attribute a LEFT JOIN pg_attrdef d 
         ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
        WHERE a.attrelid = '"controllers"'::regclass 
        AND a.attnum > 0 AND NOT a.attisdropped 
        ORDER BY a.attnum 



    Error: 
    RegistrationsControllerTest#test_POST_#create_will_register_a_new_user_with_a_valid_email_and_matching_passwords: 
    NoMethodError: undefined method `each' for nil:NilClass 

 

Я попытался сбрасывать и воссоздавать базу данных и иметь r un rake db: test: подготовить, все безрезультатно. Я не знаю, откуда эта ошибка.

Я ищу совет о том, как решить эту проблему, чтобы я мог прогрессировать с моим тестированием. Спасибо.

ответ

1

Проблема была полностью моей собственной работой, как и ожидалось. В какой-то момент я набрал rails g devise controllers user вместо rails g devise:controllers user. Следовательно, рельсы сделали именно то, что я ему сказал, и создали файлы для модели контроллера, которая, конечно, фактически не существует. Я удалил большинство этих файлов, но нашел еще пару скрытых в папках. Теперь, когда я нашел и удалил оставшиеся файлы, мои тесты работают так, как ожидалось.

Смежные вопросы