Тестирование проверки экземпляра частного метода rspec - PullRequest
0 голосов
/ 29 марта 2019

Существует частный метод со следующим кодом.

attr_reader :some_variable

validate :some_def

def some_def
  unless some_variable.valid?
    some_variable.errors.messages.each do |message|
      errors.add(:some_variable, message)
  end
end

Я новичок в rspec и не знаком с тестированием частных методов. Любая помощь приветствуется.

Мне нужно охватить строки частного метода.

1 Ответ

0 голосов
/ 29 марта 2019

вы можете сделать что-то вроде этого:

describe 'validations' do
  let(:some_variable_object) { SomeVariable.new } 
  let(:new_foo) { described_class.new(some_variable: some_variable_object) }

  context 'when some_variable is valid' do
    before do
      allow(some_variable_object).to receive(:valid?) { true }
    end

    it 'is valid' do
     expect(new_foo).to be_valid
    end

    it 'does not have errors related to some_variable' do
      expect(new_foo.errors[:some_variables]).to be_empty
    end
  end

тогда вы можете сделать то же самое, чтобы проверить обратное, когда some_variable недопустимо ... сейчас есть инструменты, которые помогут вам настроитьобъекты в спецификации легко (FactoryBot).

...