123456789_123456789_123456789_123456789_123456789_

Class: Rails::Generators::TestCase

Overview

This class provides a TestCase for testing generators. To set up, 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::Behavior - Attributes & Methods

Class Attribute Summary

::ActiveSupport::TestCase - Inherited

.file_fixture_path, .file_fixture_path?,
.test_order

Returns the order in which test cases are run.

.test_order=

Sets the order in which test cases are run.

Class Method Summary

::ActiveSupport::TestCase - Inherited

.fixture_paths

Returns the ::ActiveRecord::FixtureSet collection.

.fixture_paths=

Sets the given path to the fixture set.

.parallelize

Parallelizes the test suite.

.parallelize_setup

Set up hook for parallel testing.

.parallelize_teardown

Clean up hook for parallel testing.

::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::Behavior - 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

::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, travel_to, and freeze_time.

#travel_to

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

#unfreeze_time

::ActiveSupport::Testing::ConstantStubbing - Included

#stub_const

Changes the value of a constant for the duration of a block.

::ActiveSupport::Testing::Deprecation - Included

#assert_deprecated

Asserts that a matching deprecation warning was emitted by the given deprecator during the execution of the yielded block.

#assert_not_deprecated

Asserts that no deprecation warnings are emitted by the given deprecator during the execution of the yielded block.

#collect_deprecations

Returns the return value of the block and an array of all the deprecation warnings emitted by the given Rails.deprecator during the execution of the yielded block.

::ActiveSupport::Testing::ErrorReporterAssertions - Included

#assert_error_reported

Assertion that the block should cause at least one exception to be reported to Rails.error.

#assert_no_error_reported

Assertion that the block should not cause an exception to be reported to Rails.error.

::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.

#assert_raise
#assert_raises

Asserts that a block raises one of exp.

Class Attribute Details

.current_path (rw)

[ GitHub ]

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

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

.current_path?Boolean (rw)

[ GitHub ]

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

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

.default_arguments (rw)

[ GitHub ]

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

class_attribute :default_arguments, default: []

.default_arguments?Boolean (rw)

[ GitHub ]

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

class_attribute :default_arguments, default: []

.destination_root (rw)

[ GitHub ]

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

class_attribute :destination_root

.destination_root?Boolean (rw)

[ GitHub ]

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

class_attribute :destination_root

.generator_class (rw)

[ GitHub ]

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

class_attribute :generator_class

.generator_class?Boolean (rw)

[ GitHub ]

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

class_attribute :generator_class

Instance Attribute Details

#current_path (rw)

[ GitHub ]

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

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

#current_path?Boolean (rw)

[ GitHub ]

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

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

#default_arguments (rw)

[ GitHub ]

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

class_attribute :default_arguments, default: []

#default_arguments?Boolean (rw)

[ GitHub ]

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

class_attribute :default_arguments, default: []

#destination_root (rw)

[ GitHub ]

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

class_attribute :destination_root

#destination_root?Boolean (rw)

[ GitHub ]

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

class_attribute :destination_root

#generator_class (rw)

[ GitHub ]

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

class_attribute :generator_class

#generator_class?Boolean (rw)

[ GitHub ]

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

class_attribute :generator_class