Hi. I have a simple application and I want to add a file upload functionality. How can I write a spec?
Here's my try. # directory structure app: - controller.rb - controller.spec.rb - files: [] - fixtures: [test_file.png] # controller.spec.rb require 'rack/test' require 'controller' module MyHelpers def app Sinatra::Application end end Spec::Runner.configure do |conf| conf.include Rack::Test::Methods conf.include MyHelpers end describe 'Application' do it 'should accept uploaded files and save them into the `files` directory' post '/', 'file' => Rack::Test::UploadedFile.new('fixtures/test_file.png', 'image/png') Dir['files/*'].should include('files/test_file.png') end end # controller.rb require 'sinatra' require 'fileutils' post '/' do tempfile = params['file'][:tempfile] FileUtils.copy_file(tempfile.path, 'files') end But when I ran... $ spec -f specdoc controller.rb ...I get the following output. Application - should accept uploaded files and save them into the `files` directory (FAILED - 1) 1) 'Application should accept uploaded files and save them into the `files` directory' FAILED expected [] to include "files/test_file.png" <path_to_app>/controller.spec.rb:<line_number>:in `block (2 levels) in <top (required)>' Finished in 0.132799038 seconds 1 example, 1 failure What I do wrong? Thanks. Debian GNU/Linux 5.0.4; Ruby 1.9.2; Sinatra 0.9.6; RSpec 1.3.0; Rack-Test 0.5.3. -- Posted via http://www.ruby-forum.com/. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users