On May 29, 2008, at 2:25 AM, zuo peng wrote:

Hi,

I've got trouble when describe infinite loop.

code snippet:

 def start_loop
   while true
     data = self.server.handle_client
     if data
       self.manager.dispatch(data)
     end
   end
 end

without the loop, it is easy to test the logic.
but how can I describe it to tell the developer ( me :-) ) that there
should be an infinite loop inside.

Here's a tip which Aslak gave me several months ago, and I find myself repeating it in many different contexts on this mailing list:

One way is with dependency injection:

def start_loop(looping_infinitely = true)
  while looping_infinitely
        ...
  end
end

In your spec, you simply pass false (but production code can call the method as if there is no option).

Scott

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to