Namespace
Module
Methods
Instance Public methods
create_generated_attribute(attribute_type, name = "test", index = nil)
Create a Rails::Generators::GeneratedAttribute by supplying the attribute type and, optionally, the attribute name:
create_generated_attribute(:string, "name")
📝 Source code
# File railties/lib/rails/generators/testing/behavior.rb, line 89
def create_generated_attribute(attribute_type, name = "test", index = nil)
Rails::Generators::GeneratedAttribute.parse([name, attribute_type, index].compact.join(":"))
end
🔎 See on GitHub
generator(args = default_arguments, options = {}, config = {})
Instantiate the generator.
📝 Source code
# File railties/lib/rails/generators/testing/behavior.rb, line 81
def generator(args = default_arguments, options = {}, config = {})
@generator ||= generator_class.new(args, options, config.reverse_merge(destination_root: destination_root))
end
🔎 See on GitHub
run_generator(args = default_arguments, config = {})
Runs the generator configured for this class. The first argument is an array like command line arguments:
class AppGeneratorTest < Rails::Generators::TestCase
tests AppGenerator
destination File.expand_path("../tmp", __dir__)
setup :prepare_destination
test "database.yml is not created when skipping Active Record" do
run_generator %w(myapp --skip-active-record)
assert_no_file "config/database.yml"
end
end
You can provide a configuration hash as second argument. This method returns the output printed by the generator.
📝 Source code
# File railties/lib/rails/generators/testing/behavior.rb, line 67
def run_generator(args = default_arguments, config = {})
args += ["--skip-bundle"] unless args.include?("--no-skip-bundle") || args.include?("--dev")
args += ["--skip-bootsnap"] unless args.include?("--no-skip-bootsnap") || args.include?("--skip-bootsnap")
if ENV["RAILS_LOG_TO_STDOUT"] == "true"
generator_class.start(args, config.reverse_merge(destination_root: destination_root))
else
capture(:stdout) do
generator_class.start(args, config.reverse_merge(destination_root: destination_root))
end
end
end
🔎 See on GitHub
Instance Private methods
prepare_destination()
Clears all files and directories in destination.
📝 Source code
# File railties/lib/rails/generators/testing/behavior.rb, line 103
def prepare_destination # :doc:
rm_rf(destination_root)
mkdir_p(destination_root)
end
🔎 See on GitHub