Ruby on rails 模型中导入方法的Rspec测试
我正在测试一个模型上有导入方法的rails应用程序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
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
我不知道如何继续,我如何才能创建一个测试来确定文件是否已上载并成功添加到数据库中。到目前为止您尝试了什么?有什么努力吗?你的问题看起来像是为我的代码编写测试我对测试还很陌生,有没有一种方法可以模拟一个文件以便通过该方法?我需要制作一个实际的文件吗@谷歌页面中的第一个