simulate sending file in functional test

I have this controller method:
def create_stk
    eval <<-EOS
    @#{@controller_varname} = @class_controller.find(@params[:id])
    if params[@controller_varname][:stk].content_type.chomp ==
'application/pdf' then
      @#{@controller_varname}.stk =
params[@controller_varname][:stk].read
      if @#{@controller_varname}.save
  flash['notice'] = 'STK #{Inflector.titleize(@controller_varname)}
berhasil dibuat.'
  redirect_to :controller => 'element'
      else
  render_action 'create_stk'
      end
    else
      flash[:notice] = 'Dokumen yang dikirim harus berformat pdf.'
      redirect_to :action => 'new_stk', :id => @params[:id]
    end
    EOS
  end

I want to test it with functional test. First I have to tell you what
the controller is doing? It just accept file that somebody send, check
the type ( must be pdf ), then put in attribute of database record that
already exists. So I want to test if somebody does not send pdf file,
the view must display some warnings. But how do you emulate sending
file in controller test. Here is the test method:
def test_send_invalid_stk
    post :create_stk, { :id => @don_dafii_order.id, :thermo_detector =>
{ :stk => '' }}
  end

:stk is the file parameter. If I execute this, it complains there is no
content_type method for string.

Thank you.