написание спецификаций для проверки файлов с использованием rspec (проект ruby) - PullRequest
0 голосов
/ 02 декабря 2018

эти два тестовых случая не пройдены,

describe 'validations' do
  it { should validate_presence_of :file }
  it { should validate_presence_of :save_path }
end

Это класс, для которого я тестирую,

class ConvertFileToPdf < Base
  attr_accessor(
    :file,
    :save_path
  )
  validates_presence_of(
    :file,
    :save_path
  )

  def path
    '/Convert/ConvertFileToPdf'
  end

  def save_path
    @save_path ||= File.join(File.dirname(file), "#{File.basename(file, ".*")}.pdf")
  end

  def call_api
    client.multipart_post(
      path,
      file_name: File.basename(file),
      file: File.open(file, 'rb'),
    ) do |request|
      download(request, save_path)
    end
  end
end

неудачный тестовый пример

1 Ответ

0 голосов
/ 02 декабря 2018

При выполнении проверки присутствия для save_path будет вызван соответствующий метод чтения.Во время этого, если file не заполнено действительным значением, композиция из File.dirname не будет выполнена.

Возможно, вам следует добавить пункт guard к вашему методу save_path:

def save_path
   return if file.nil?
   @save_path ||= File.join(File.dirname(file), "#{File.basename(file, ".*")}.pdf")
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...