Я хочу написать тест rspec, который использует MyModel.all
(т. Е. Все записи для модели), выполняет некоторые действия с ним и возвращает результат
Возможно ли создать новую таблицу базы данных (т.е. модель) изнутри rspec?А потом уничтожить его в конце теста?Считается ли это хорошей практикой (теоретически, если разработчик, работающий над проектом, по совпадению создал таблицу с тем же именем, и она могла быть отброшена тестом).Или это считается настолько маловероятным, что в тесте можно генерировать таблицу с произвольным именем?
Примечание: тест должен извлечь все записи в модели, поэтому было бы неплохопросто сгенерируйте один (очень маленький) внутри теста, а не используйте реальную таблицу, которая может быть большой и замедлять тесты без необходимости
Метод, который я пытаюсь протестировать, аналогичен
def my_method(model_name)
the_table = eval(model_name).all
# does some things
end
Ключевой особенностью метода является то, что он принимает название модели (и извлекает все записи для модели внутри метода)
Тест проводится в соответствии с правиламииз
it "ensures something" do
# tests
expect(result).to eq(true)
end