Generator Spec
Allows testing of Rails generators inside RSpec using standard Rails::Generators::TestCase assertion methods.
Usage
Add 'generator_spec' to Gemfile and use just like you would test generators in test unit:
# spec/lib/generators/test/test_generator_spec.rb
require "generator_spec/generator_example_group"
describe TestGenerator do
include GeneratorSpec::GeneratorExampleGroup
destination File.("../../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 by carlhuda.
describe TestGenerator, "using custom matcher" do
include GeneratorSpec::GeneratorExampleGroup
destination File.("../../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"
end
end
}
end
end