[rspec-users] Release of RSpec for Generators 0.4.0

Kristian Mandrup kmandrup.github at gmail.com
Sat Aug 7 11:26:24 EDT 2010


Now with a full RSpec 2 test suite to demonstrate most of its
features. Wiki to be updated with latest changes ASAP.

http://github.com/kristianmandrup/rspec_for_generators

This gem makes it very easy to spec that your generator generates
files as expected and also lets you easily verify that the content of
those files match what you expect

- name of the class
- subclass of class
- class includes specific modules
- contains certain instance or class methods
...

In general it has a lot of nice matchers to match on generated Ruby
source code (using regexp)

It also has a nice DSL to spec generated migration files in detail
(see below)

# spec generated model file

  it "should decorate an existing Account model file with include
Canable:Ables" do
    with_generator do |g|
      name = 'account'
      create_model name
      g.run_generator [name]
      g.should generate_model name do |content|
        content.should have_class name do |klass|
          klass.should include_module 'Canable::Ables'
        end
      end
    end
  end

# spec generated migration file

      g.should generate_migration name do |content|
        content.should have_migration name do |klass|
          klass.should have_up do |up|
            up.should have_create_table :users do |user_tbl|
              user_tbl.should have_columns :name => :string, :age
=> :string
            end
          end

          klass.should have_down do |up|
            up.should have_drop_table :users
          end
        end
      end


# spec generated Active Record observer

      g.run_generator [name]
      g.should generate_observer name do |content|
        content.should have_observer_class name do |klass|
          klass.should have_method :observe_me
        end
      end

and many more...


More information about the rspec-users mailing list