123456789_123456789_123456789_123456789_123456789_

Class: Rails::Generators::TestCase

Overview

This class provides a TestCase for testing generators. To setup, you need just to configure the destination and set which generator is being tested:

class AppGeneratorTest < Rails::Generators::TestCase
  tests AppGenerator
  destination File.expand_path("../tmp", __dir__)
end

If you want to ensure your destination root is clean before running each test, you can set a setup callback:

class AppGeneratorTest < Rails::Generators::TestCase
  tests AppGenerator
  destination File.expand_path("../tmp", __dir__)
  setup :prepare_destination
end

Constant Summary

::ActiveSupport::TestCase - Inherited

Assertion

Testing::Behaviour - Attributes & Methods

Class Attribute Summary

Class Method Summary

::ActiveSupport::Testing::Declarative - Extended

test

Helper to define a test method using a ::String.

Instance Attribute Summary

Instance Method Summary

Testing::Assertions - Included

#assert_class_method

Asserts the given class method exists in the given content.

#assert_directory
#assert_field_default_value

Asserts the given attribute type gets a proper default value:

#assert_field_type

Asserts the given attribute type gets translated to a field type properly:

#assert_file

Asserts a given file exists.

#assert_instance_method

Asserts the given method exists in the given content.

#assert_method
#assert_migration

Asserts a given migration exists.

#assert_no_directory
#assert_no_file

Asserts a given file does not exist.

#assert_no_migration

Asserts a given migration does not exist.

Testing::Behaviour - Included

#create_generated_attribute

Create a GeneratedAttribute by supplying the attribute type and, optionally, the attribute name:

#generator

Instantiate the generator.

#run_generator

Runs the generator configured for this class.

#prepare_destination

Clears all files and directories in destination.

::ActiveSupport::TestCase - Inherited

::ActiveRecord::TestFixtures - Included

::ActiveSupport::Testing::FileFixtures - Included

#file_fixture

Returns a ::Pathname to the fixture file named fixture_name.

::ActiveSupport::Testing::TimeHelpers - Included

#after_teardown,
#freeze_time

Calls travel_to with Time.now.

#travel

Changes current time to the time in the future or in the past by a given time difference by stubbing Time.now, Date.today, and DateTime.now.

#travel_back

Returns the current time back to its original state, by removing the stubs added by travel and travel_to.

#travel_to

Changes current time to the given time by stubbing Time.now, Date.today, and DateTime.now to return the time or date passed into this method.

::ActiveSupport::Testing::Assertions - Included

#assert_changes

Assertion that the result of evaluating an expression is changed before and after invoking the passed in block.

#assert_difference

Test numeric difference between the return value of an expression as a result of what is evaluated in the yielded block.

#assert_no_changes

Assertion that the result of evaluating an expression is not changed before and after invoking the passed in block.

#assert_no_difference

Assertion that the numeric result of evaluating an expression is not changed before and after invoking the passed in block.

#assert_not

Asserts that an expression is not truthy.

#assert_nothing_raised

Assertion that the block should not raise an exception.

Class Attribute Details

.current_path (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 21

class_attribute :current_path, default: File.expand_path(Dir.pwd)

.current_path?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 21

class_attribute :current_path, default: File.expand_path(Dir.pwd)

.default_arguments (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 22

class_attribute :default_arguments, default: []

.default_arguments?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 22

class_attribute :default_arguments, default: []

.destination_root (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 23

class_attribute :destination_root

.destination_root?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 23

class_attribute :destination_root

.generator_class (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 24

class_attribute :generator_class

.generator_class?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 24

class_attribute :generator_class

Instance Attribute Details

#current_path (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 21

class_attribute :current_path, default: File.expand_path(Dir.pwd)

#current_path?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 21

class_attribute :current_path, default: File.expand_path(Dir.pwd)

#default_arguments (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 22

class_attribute :default_arguments, default: []

#default_arguments?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 22

class_attribute :default_arguments, default: []

#destination_root (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 23

class_attribute :destination_root

#destination_root?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 23

class_attribute :destination_root

#generator_class (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 24

class_attribute :generator_class

#generator_class?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/generators/testing/behaviour.rb', line 24

class_attribute :generator_class