"> "> " />

Тест Sinatra загружает и загружает двоичный файл с помощью Rspec

У меня есть следующий код rspec для проверки загрузки и загрузки двоичного файла. Я знаю, что могу проверить «тип контента» , чтобы проверить, правильно ли загружен и загружен файл. Но как мне запустить MD5 на основе следующего, чтобы убедиться, что на самом деле это тот же файл.

it "should upload a file" do
  file = Rack::Test::UploadedFile.new("./HelloWorld.bin", "application/octet-stream")
  json = {:md5sum => "0cd74c7a3cf2207ffd68d43177681e6b", :config => "./testconfig.yaml"}.to_json

  post "/upload", :json => json, :file => file
  last_response.should be_ok
  (JSON.parse(last_response.body)["status"]).should be_true
  (JSON.parse(last_response.body)["filename"]).should eq("HelloWorld.bin")
end

it "download a file successfully" do
  filename = "HelloWorld.bin"
  get '/download/' + filename
  last_response.should be_ok
  last_response.headers['Content-Type'].should eq "application/octet-stream"
end

Можно ли назначить 'last_response.body' как двоичный файл в get '/ download' ?

1
nl ja de
Отметьте некоторые из ваших вопросов в ответ.
добавлено автор sunnyrjuneja, источник

1 ответы

Поскольку last_response.body - это строка, вы всегда можете запустить контрольную сумму MD5 непосредственно в строке.

  (Digest::MD5.hexdigest(last_response.body)).should eq ("a1cba6369d668ed0ae5e97658c30979a")
0
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков