Module: Rails::Generators::Testing::Behaviour
- Extended by:
 - ActiveSupport::Concern
 
- Includes:
 - ActiveSupport::Testing::Stream
 
- Included in:
 - Rails::Generators::TestCase
 
- Defined in:
 - lib/rails/generators/testing/behaviour.rb
 
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- 
  
    
      #create_generated_attribute(attribute_type, name = "test", index = nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Create a Rails::Generators::GeneratedAttribute by supplying the attribute type and, optionally, the attribute name:.
 - 
  
    
      #generator(args = default_arguments, options = {}, config = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Instantiate the generator.
 - 
  
    
      #run_generator(args = default_arguments, config = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Runs the generator configured for this class.
 
Instance Method Details
#create_generated_attribute(attribute_type, name = "test", index = nil) ⇒ Object
Create a Rails::Generators::GeneratedAttribute by supplying the attribute type and, optionally, the attribute name:
create_generated_attribute(:string, "name")
  
      85 86 87  | 
    
      # File 'lib/rails/generators/testing/behaviour.rb', line 85 def create_generated_attribute(attribute_type, name = "test", index = nil) Rails::Generators::GeneratedAttribute.parse([name, attribute_type, index].compact.join(":")) end  | 
  
#generator(args = default_arguments, options = {}, config = {}) ⇒ Object
Instantiate the generator.
      77 78 79  | 
    
      # File 'lib/rails/generators/testing/behaviour.rb', line 77 def generator(args = default_arguments, = {}, config = {}) @generator ||= generator_class.new(args, , config.reverse_merge(destination_root: destination_root)) end  | 
  
#run_generator(args = default_arguments, config = {}) ⇒ Object
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.("../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.
      67 68 69 70 71 72 73 74  | 
    
      # File 'lib/rails/generators/testing/behaviour.rb', line 67 def run_generator(args = default_arguments, config = {}) capture(:stdout) do args += ["--skip-bundle"] unless args.include?("--no-skip-bundle") || args.include?("--dev") args |= ["--skip-bootsnap"] unless args.include?("--no-skip-bootsnap") generator_class.start(args, config.reverse_merge(destination_root: destination_root)) end end  |