Есть ли какая-либо фабрика рельсов, чтобы помочь мне протестировать непостоянные модели? - PullRequest
3 голосов
/ 10 июня 2011

Я работаю над приложением rails, в котором модели представляют собой обычные рубиновые классы без какого-либо постоянного слоя (без активной записи или чего-либо подобного). Я хочу протестировать эти модели от RSpec со всеми тонкостями, которые предоставляют некоторые фабрики (машинист, фабрикант). Эти модели могут получить ассоциации с постоянными моделями в будущем или могут реализовать собственную модель постоянства.

Есть предложения?

1 Ответ

0 голосов
/ 10 июня 2011

Мне нравится использовать Шам камень .Пока у вас непостоянная модель, соответствующая некоторым базовым деталям реализации, все будет в порядке.Например, в моем приложении 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">
...