class RuboCop::Cop::Minitest::GlobalExpectations
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
# good
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: value
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
# good
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: expect
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
# good
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: _
value { musts }.must_raise TypeError
value(wonts).wont_match expected_wonts
value(musts).must_equal expected_musts
expect { musts }.must_raise TypeError
expect(wonts).wont_match expected_wonts
expect(musts).must_equal expected_musts
_ { musts }.must_raise TypeError
_(wonts).wont_match expected_wonts
_(musts).must_equal expected_musts
# good
musts.must_raise TypeError
wonts.wont_match expected_wonts
musts.must_equal expected_musts
# bad
@example EnforcedStyle: any (default)
and autocorrects them to use expect format.
Checks for deprecated global expectations
def method_allowed?(method)
def method_allowed?(method) DSL_METHODS.include?(method) end
def on_send(node)
def on_send(node) receiver = node.receiver return unless receiver method = block_receiver?(receiver) || value_receiver?(receiver) return if method == preferred_method || (method && style == :any) register_offense(node, method) end
def preferred_method
def preferred_method style == :any ? :_ : style end
def preferred_receiver(node)
def preferred_receiver(node) receiver = node.receiver if BLOCK_MATCHERS.include?(node.method_name) body = receiver.lambda? ? receiver.body : receiver "#{preferred_method} { #{body.source} }" else "#{preferred_method}(#{receiver.source})" end end
def register_offense(node, method)
def register_offense(node, method) receiver = node.receiver if method preferred = preferred_method replacement = receiver.source.sub(method.to_s, preferred_method.to_s) else preferred = preferred_receiver(node) replacement = preferred end message = format(MSG, preferred: preferred) add_offense(receiver, message: message) do |corrector| corrector.replace(receiver, replacement) end end