This week I got to pair program with Oren Golan whose last high profile job was at Border Stylo. While there, he wrote a series of excellent blog posts that I highly recommend reading. The one that caught my eye was his post on MiniTest, that’s a lighter version of RSpec.
We created a Padrino app that uses the Sequel gem as an ORM for SQLite.
We tested a raw file upload and the uploading capabilities of Carrierwave.
The working test is on http://github.com/barce/test, and to run it just clone the repo and type the following:
cd test
bundle install
padrino sq:migrate:up
bundle install
padrino sq:migrate:up
Here’s the test:
# put this into the test/test.rb file require 'rubygems' gem 'minitest' require 'minitest/autorun' require 'rack/test' require '../config/boot.rb' class TestManualBadgeType < MiniTest::Unit::TestCase include Rack::Test::Methods FILE2UPLOAD = "/Users/jimbarcelona/pink-pony.jpg" UPLOADEDFILE = "/Users/jimbarcelona/repos/oren/forks/test/test/pink-pony.jpg" def app() Test end def setup if File.exist?(UPLOADEDFILE) File.delete(UPLOADEDFILE) end end def test_opload post '/', 'file' => Rack::Test::UploadedFile.new(FILE2UPLOAD, 'image/jpeg') assert_equal last_response.status, 201 end def test_carrierwave_201 post '/carrierwave', 'file' => Rack::Test::UploadedFile.new(FILE2UPLOAD, 'image/jpeg') assert_equal last_response.status, 201 end def test_carrierwave_file_exist post '/carrierwave', 'file' => Rack::Test::UploadedFile.new(FILE2UPLOAD, 'image/jpeg') assert_equal last_response.status, 201 end end
Now you’re ready to run the test upload:
cd test
ruby test.rb
ruby test.rb
Leave a Reply