使用rspec(ruby项目)编写用于文件验证的规范

时间:2018-12-02 07:31:04

标签: ruby-on-rails ruby

这两个测试用例失败,

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

failing test case

1 个答案:

答案 0 :(得分:0)

在执行SecondScreen::SecondScreen(QWidget* parent) : QDialog(parent) { window.NetworkConnectionObject->LogInToken = ""; } 的存在检查时,将调用相应的reader方法。 在此期间,如果save_path的有效值未填写,则file的合成将失败。

您可能应该在File.dirname方法中添加保护子句:

save_path