Почему записи не удаляются после теста/спецификации

Я использую гем «devise» для аутентификации и rspec для тестирования. Моя проблема заключается в том, что после выполнения спецификации тестовые данные не очищаются из БД, из-за этого последующего выполнения спецификации не удается. Ниже приведена спецификация:

описать Пользователь сделать

он «должен возвращать действительного пользователя, когда используются действительный адрес электронной почты и пароль» user.save user.should be_valid конец

конец

Есть ли что-нибудь еще, что я могу здесь делать?


person Ravinder Rana    schedule 18.12.2009    source источник
comment
Я обнаружил, что DatabaseCleaner помогает усекать базу данных во время тестирования. github.com/DatabaseCleaner/database_cleaner   -  person Int'l Man Of Coding Mystery    schedule 12.08.2019


Ответы (2)


Я сам не уверен. Я учусь делать драгоценные камни, и я столкнулся с этой проблемой. Я добавил метод в spec_helper:


def purge_db
  [User, Subscription, Dorkus].each {|c| c.delete_all}
end

Spec::Runner.configure do |config|
  config.before(:each) { purge_db }
end         
person Ramon Tayag    schedule 30.03.2010

В некоторых случаях обычной практикой является подготовка тестовой базы данных перед каждым запуском спецификаций:

rails db:test:prepare
person ianrandmckenzie    schedule 12.08.2019