Skip to content

stevehodgkiss/generator_spec

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Test Rails generators with RSpec

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages