Есть ли какая-либо фабрика рельсов, чтобы помочь мне протестировать непостоянные модели?
Я работаю над приложением rails, в котором модели представляют собой обычные рубиновые классы без какого-либо постоянного слоя (без активной записи или чего-либо подобного). Я хочу протестировать эти модели от RSpec со всеми тонкостями, которые предоставляют некоторые фабрики (машинист, фабрикант). Эти модели могут получить ассоциации с постоянными моделями в будущем или могут реализовать собственную модель постоянства.
Какие-либо предложения?
1 ответ
Решение
Мне нравится использовать драгоценный камень Шам. Пока у вас непостоянная модель, соответствующая некоторым базовым деталям реализации, все будет в порядке. Например, в моем приложении Rails я бы сделал следующее:
# sham/dog_sham.rb
class Dog::Sham
def self.options
{ name: "Barney" }
end
end
# app/models/dog.rb
class Dog < Struct.new(:name)
def self.create options
self.new(options[:name])
end
end
Затем в консоли я могу создать фабричного пса с помощью команды sham:
Sham::Config.activate!
Dog.sham!
=> #<struct Dog name="Barney">