I was performing functional tests on my models that employed Attachment_Fu this morning and thought it would be worthwhile to share the code since it was a bit of a hassle pulling it together. Kudos to Mike Subelsky for his introduction to functional testing Attachment_Fu. It got me going in the right direction. What proved difficult once again was the multi-model controller. Once I got over that hump, I was on my way. As you can see from all the detail in the HTTP POST below, that was not an entirely easy task.
class ProductsControllerTest < Test::Unit::TestCase ... def test_create_with_user num_products = Product.count imgdata = fixture_file_upload('/files/image.png', 'image/png') audiodata = fixture_file_upload('/files/sound.mp3', 'audio/mpeg') post :create, { :product => { :name => "Widget", :description => "A small tool-like item", :weight => "3", :price => "19.99", :language_id => "1"; }, :image => {:uploaded_data => imgdata}, :audio => {:uploaded_data => audiodata} , :html => { :multipart => true } }, {:user_id => users(:valid_active_user).id} assert_response :redirect assert_redirected_to :action => 'show' assert_equal num_products + 1, Product.count end ... end