/em-spec

Simple BDD API for testing asynchronous Ruby/EventMachine code

Primary LanguageRuby

Simple BDD API for testing asynchronous Ruby/EventMachine code
  (c) 2008 Aman Gupta (tmm1)


The API is identical to Bacon, except that you must explicitly call 'done' after all the current behavior's assertions have been made:

  require 'em/spec'

  EM.describe EventMachine do

    should 'have timers' do
      start = Time.now

      EM.add_timer(0.5){
        (Time.now-start).should.be.close 0.5, 0.1
        done
      }
    end

    should 'have periodic timers' do
      num = 0
      start = Time.now

      timer = EM.add_periodic_timer(0.5){
        if (num += 1) == 2
          (Time.now-start).should.be.close 1.0, 0.1
          EM.__send__ :cancel_timer, timer
          done
        end
      }
    end

  end


Resources:

  Git repository: http://github.com/tmm1/em-spec
  Bacon: http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/30b07b651b0662fd
  Initial announcement: http://groups.google.com/group/eventmachine/browse_thread/thread/8b4e7ead72f9d013