Вопрос: не следует ли rspec очищать базу данных перед каждым примером спецификации и, следовательно, не выбрасывать повторяющиеся ошибки ввода?
RSpec с DatabaseCleaner или RSpec Rails с use_transactional_fixtures очистит DB , пока вы создали данные в самом примере. before :all do ... end
рассматривается вне примера, потому что данные остаются нетронутыми в нескольких примерах. Все, что вы создаете в before :all
, вы должны удалить в after :all
.
Чтобы автоматически удалить все, что вы создали, используйте before :each do ... end
. Помните, что одни и те же данные будут создаваться и удаляться 10 раз, если у вас есть 10 примеров. Разницу между before :all
и before :each
лучше объяснить здесь: rails rspec перед всеми против каждого перед