0.09
Low commit activity in last 3 years
There's a lot of open issues
No release in over a year
Test Rails generators with RSpec
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 3.0

Runtime

>= 3.0.0
 Project Readme

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"
            does_not_contain "Something else"
          end
        end
      end
      directory "db" do
        directory "migrate" do
          file "123_create_tests.rb"
          migration "create_tests" do
            contains "class TestMigration"
            does_not_contain "Something else"
          end
        end
      end
    }
  end
end