[rspec-users] RSpec 2 equivalent for Rails::Generators::TestCase ?

Kristian Mandrup kmandrup.github at gmail.com
Thu Jul 8 15:44:06 EDT 2010


I have been creating a lot of Thor generators and Rails generators
during the past 4 months, but only this week did I find some good
examples of how to write tests for generators using
Rails::Generators::TestCase - in the "rails3-generators" project.

I prefer to write my tests in RSpec 2, so I was wondering if there is
an RSpec 2 equivalent out there yet?
If not, I will try writing my own RSpec 2 port... but I would be very
happy if anyone could help me in this effort, with suggestions or
anything.
Thanks!

Kristian

Test::Unit example
-------------------------

require 'generator_helper'

class Canable::Generators::ModelGeneratorTest <
Rails::Generators::TestCase
  destination File.join(Rails.root)
  tests Canable::Generators::ModelGenerator

  setup :prepare_destination
  setup :copy_routes

  def assert_model(name, options)
    assert_file "app/models/#{name}.rb" do |account|
      assert_class name.camelize, account do |klass|
        assert_match /include Canable::Ables/, klass

        assert_match(/userstamps!/, klass) if options[:userstamps]

        if method = options[:method]
          assert_match(/def #{method}_by?(user)/, klass) if method
        end
      end
    end
  end

  test "invoke with no arguments" do
    run_generator
  end

  # test include Canable:Ables statement is added
  test "invoke with model name" do
    name = 'house'
    run_generator(name)
    assert_model(name)
  end
end



More information about the rspec-users mailing list