Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 5th, 2012  |  syntax: None  |  size: 2.41 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Ruby: mocking file writes with Flexmock
  2. class AskSO
  3.  
  4.   def initialize( filehandle )
  5.     @filehandle   = filehandle
  6.   end
  7.  
  8.   def library_start
  9.     @filehandle << '<plist version="1.0">'
  10.   end
  11. end
  12.        
  13. require 'rubygems'
  14. require 'flexmock/test_unit'
  15. require 'AskSO'
  16. require 'test/unit'
  17.  
  18. class AskSOTest < Test::Unit::TestCase
  19.  
  20.   def setup
  21.     @filehandle = flexmock( "filehandle", "<<" => "" )
  22.   end
  23.  
  24.   def test_library_start
  25.     @filehandle.should_receive( "<<" ).with( '<plist version="1.0">' ).once
  26.     @AskSOInstance = AskSO.new( @filehandle )
  27.     @AskSOInstance.library_start
  28.   end
  29. end
  30.        
  31. 1) Failure:
  32. test_library_start(AskSOTest)
  33.     [/Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/validators.rb:40:in `validate'
  34.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/expectation.rb:123:in `flexmock_verify'
  35.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/expectation.rb:122:in `each'
  36.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/expectation.rb:122:in `flexmock_verify'
  37.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/expectation_director.rb:64:in `flexmock_verify'
  38.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/expectation_director.rb:63:in `each'
  39.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/expectation_director.rb:63:in `flexmock_verify'
  40.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/core.rb:76:in `flexmock_verify'
  41.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/core.rb:75:in `each'
  42.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/core.rb:75:in `flexmock_verify'
  43.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/core.rb:191:in `flexmock_wrap'
  44.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/core.rb:74:in `flexmock_verify'
  45.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/mock_container.rb:40:in `flexmock_verify'
  46.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/mock_container.rb:39:in `each'
  47.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/mock_container.rb:39:in `flexmock_verify'
  48.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/mock_container.rb:32:in `flexmock_teardown'
  49.      /Library/Ruby/Gems/1.8/gems/flexmock-0.9.0/lib/flexmock/test_unit.rb:26:in `teardown']:
  50. in mock 'filehandle': method '<<("<plist version="1.0">")' called incorrect number of times.
  51. <1> expected but was
  52. <0>.
  53.        
  54. def setup
  55.   @filehandle = flexmock( "filehandle" )
  56. end