Hi
I'm using Mocha to mock a HTTP connection, so I can test higher level
application code without requiring a 'live' webserver host. However, I'm
having difficulty trying to stub some of the
connection handle parameters.

My connection class init opens the port as follows:
class NetConnection
   def initialize(host, port)
      # -- Outgoing is an Https post
      @handle_tx = Net::HTTP.new(host, port)
      @handle_tx.use_ssl = true
      @handle_tx.verify_mode = OpenSSL::SSL::VERIFY_NONE
   end
end

In my test class, I'm mocking the Net::HTTP connection as follows:

   def test_open_port
      net_mock = mock('Net::HTTP')
      Net::HTTP.expects(:new).once.with(exp_host,
exp_port).returns(net_mock)

      net_connection = NetConnection.new(exp_host, exp_port)
   end

The problem is in the following calls in the NetConnection constructor
      @handle_tx.use_ssl = true
      @handle_tx.verify_mode = OpenSSL::SSL::VERIFY_NONE

Since these are assignments, not methods with parameters, how do I stub
them? I couldn't find an appropriate method in the Mocha API

I tried the following, but they don't 'match' the actual call
      net_mock.expects(:use_ssl).once.with(true)
      net_mock.expects(:verify_mode).once.with('OpenSSL::SSL::VERIFY_NONE')

I get the following error when I use the above expects for :use_ssl

  1) Failure:
unexpected invocation: #<Mock:Net::HTTP>.use_ssl=(true)
unsatisfied expectations:
- expected exactly once, not yet invoked:
#<Mock:Net::HTTP>.use_ssl(true)
satisfied expectations:
- expected exactly once, already invoked once: - expected exactly once,
already invoked once: Net::HTTP.new(exp_host, exp_port)


Any suggestions?

thanks
Michael

-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to