class RuboCop::Cop::RSpec::EmptyExampleGroup
Checks if an example group does not include any tests.
This cop is configurable using the `CustomIncludeMethods` option
@example usage
# bad describe Bacon do let(:bacon) { Bacon.new(chunkiness) } let(:chunkiness) { false } context 'extra chunky' do # flagged by rubocop let(:chunkiness) { true } end it 'is chunky' do expect(bacon.chunky?).to be_truthy end end # good describe Bacon do let(:bacon) { Bacon.new(chunkiness) } let(:chunkiness) { false } it 'is chunky' do expect(bacon.chunky?).to be_truthy end end
@example configuration
# .rubocop.yml RSpec/EmptyExampleGroup: CustomIncludeMethods: - include_tests # spec_helper.rb RSpec.configure do |config| config.alias_it_behaves_like_to(:include_tests) end # bacon_spec.rb describe Bacon do let(:bacon) { Bacon.new(chunkiness) } let(:chunkiness) { false } context 'extra chunky' do # not flagged by rubocop let(:chunkiness) { true } include_tests 'shared tests' end end
Constants
- MSG
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/rspec/empty_example_group.rb, line 70 def on_block(node) return unless example_group?(node) && !contains_example?(node) add_offense(node.children.first, location: :expression) end
Private Instance Methods
custom_include?(method_name)
click to toggle source
# File lib/rubocop/cop/rspec/empty_example_group.rb, line 78 def custom_include?(method_name) custom_include_methods.include?(method_name) end
custom_include_methods()
click to toggle source
# File lib/rubocop/cop/rspec/empty_example_group.rb, line 82 def custom_include_methods cop_config .fetch('CustomIncludeMethods', []) .map(&:to_sym) end