RSPEC - проверить метод класса to_csv - PullRequest
0 голосов
/ 10 июня 2018

У меня есть метод класса в моей модели:

def self.to_csv
  attributes = %w(title)

  CSV.generate(headers: true) do |csv|
    csv << attributes

    all.each do |campaign|
      csv << campaign.attributes.values_at(*attributes)
    end
  end
end

Я ищу хорошие способы протестировать этот метод с помощью Rspec.У кого-нибудь есть хорошие методики для этого метода?

1 Ответ

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

У меня есть несколько комментариев:

  • Я бы не стал использовать all, если вы не работаете в фоновом режиме или не знаете, что коллекция не будет такой большой
  • , если выдействительно нужно использовать all, затем не использовать .each использовать .find_each, который будет выполнять запросы в пакетном режиме
  • использовать фабричного бота, если вы можете

Для самой спецификации,Я бы сделал:

it "creates expected csv" do 
  allow(described_class).to receive(:all).and_return([
    described_class.new(title: "title1"),
    described_class.new(title: "title2")
  ])
  expect(described_class.to_csv).to eq "title\ntitle1\ntitle2\n"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...