Ruby on rails 模型中导入方法的Rspec测试

Ruby on rails 模型中导入方法的Rspec测试,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我正在测试一个模型上有导入方法的rails应用程序 def self.import_from_file(file, options = {}) allowed_attributes = ["id","filter_name","caller_phonenumber_prefix","caller_phonenumber_prefix","caller_carrier_id","caller_circle_number","priority","dial_routing_action_id"] c

我正在测试一个模型上有导入方法的rails应用程序

def self.import_from_file(file, options = {})
allowed_attributes = ["id","filter_name","caller_phonenumber_prefix","caller_phonenumber_prefix","caller_carrier_id","caller_circle_number","priority","dial_routing_action_id"]
case File.extname(file.original_filename)

when ".csv"


  header=""
  CSV.foreach(file.tempfile.to_path) do |row|
    if header.blank?
      # first line copy to header variable
      header = row
      next
    end
    hashed_row = Hash[[header, row].transpose]
    logger.debug("hashed_row: #{hashed_row.inspect}")

    target_row = find_by_id(hashed_row["id"]) || new
    target_row.attributes = hashed_row.select { |k,v| allowed_attributes.include? k }
    target_row.save!
  end


when ".xls"
  spreadsheet = Spreadsheet.open(file.tempfile)
  last_row_index = spreadsheet.worksheet(0).last_row_index

  header = spreadsheet.worksheet(0).row(0)
  for index in 1..last_row_index # 0 is header
    hashed_row = Hash[[header, spreadsheet.worksheet(0).row(index)].transpose]
    logger.debug("hashed_row: #{hashed_row.inspect}")

    target_row = find_by_id(hashed_row["id"]) || new
    target_row.attributes = hashed_row.select { |k,v| allowed_attributes.include? k }
    target_row.save!
  end

我不知道如何继续,我如何才能创建一个测试来确定文件是否已上载并成功添加到数据库中。

到目前为止您尝试了什么?有什么努力吗?你的问题看起来像是为我的代码编写测试我对测试还很陌生,有没有一种方法可以模拟一个文件以便通过该方法?我需要制作一个实际的文件吗@谷歌页面中的第一个