Test Rails generators with RSpec
Ruby
Latest commit 6f9a16a Dec 20, 2014 @parndt parndt Merge pull request #38 from solnic/patch-1
Use new RSpec syntax in README
Permalink
Failed to load latest commit information.
lib version 0.9.3 Nov 28, 2014
spec
.gitignore
.rspec
.travis.yml
Gemfile Fix Rubinius builds on Travis Dec 20, 2013
MIT-LICENSE
README.md
Rakefile
generator_spec.gemspec

README.md

Generator Spec Build Status

Test Rails generators with RSpec using the standard Rails::Generators::TestCase assertion methods.

Usage

Gemfile:

group :test do
  gem "generator_spec"
end

Spec (files in spec/lib/generators are recognized as generator type example group):

# spec/lib/generators/test/test_generator_spec.rb

require "generator_spec"

describe TestGenerator, type: :generator do
  destination File.expand_path("../../tmp", __FILE__)
  arguments %w(something)

  before(:all) do
    prepare_destination
    run_generator
  end

  it "creates a test initializer" do
    assert_file "config/initializers/test.rb", "# Initializer"
  end
end

An RSpec file matching DSL is also provided, taken with permission from beard by carlhuda.

describe TestGenerator, "using custom matcher", type: :generator do
  destination File.expand_path("../../tmp", __FILE__)

  before do
    prepare_destination
    run_generator
  end

  specify do
    expect(destination_root).to have_structure {
      no_file "test.rb"
      directory "config" do
        directory "initializers" do
          file "test.rb" do
            contains "# Initializer"
          end
        end
      end
      directory "db" do
        directory "migrate" do
          file "123_create_tests.rb"
          migration "create_tests" do
            contains "class TestMigration"
          end
        end
      end
    }
  end
end