public
Description: Simple BDD API for testing asynchronous Ruby/EventMachine code
Homepage:
Clone URL: git://github.com/tmm1/em-spec.git
name age message
file README Sat Aug 30 01:38:42 -0700 2008 require "em/spec" to use [tmm1]
file Rakefile Thu Mar 05 07:57:49 -0800 2009 Some respect for rspec [methodmissing]
file em-spec.gemspec Mon Apr 20 20:47:47 -0700 2009 Bump version [tmm1]
directory lib/ Mon Apr 20 21:30:10 -0700 2009 rspec fixes for 1.2.4 (thanks Daniel DeLeo) [tmm1]
directory test/ Mon Apr 20 20:47:47 -0700 2009 Bump version [tmm1]
README
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