Sha256: 520f5ecdf4f291ca06581a5d855a0c7d2636d3f5cdc913e682920e07d76f61d6

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

# Generator Spec

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

# Usage

Gemfile:

    group :test do
      gem "generator_spec"
    end

Spec:

    # spec/lib/generators/test/test_generator_spec.rb
    
    require "generator_spec/test_case"
    
    describe TestGenerator do
      include GeneratorSpec::TestCase

      destination File.expand_path("../../tmp", __FILE__)

      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](https://github.com/carlhuda/beard/blob/master/spec/support/matcher.rb) by [carlhuda](https://github.com/carlhuda).

    describe TestGenerator, "using custom matcher" do
      include GeneratorSpec::TestCase

      destination File.expand_path("../../tmp", __FILE__)
      
      before do
        prepare_destination
        run_generator
      end

      specify do
        destination_root.should 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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
generator_spec-0.8.0 README.md