Skip to content

Commit 4b0e639

Browse files
committed
Do not mock on nil.
[#47979793] Using `should_not_receive` on `nil` gives `nil` a permanent `@mock_proxy`, which causes Marshal.dump to fail in later tests (see https://travis-ci.org/rapid7/metasploit-framework/builds/6502350). By, checking there are no NoMethoErrors raised, nil can be tested as parent_module, but works around the RSpec issue (rspec/rspec-mocks#274).
1 parent be0c61a commit 4b0e639

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

spec/lib/msf/core/modules/loader/base_spec.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,11 +1168,11 @@ class Metasploit3
11681168
it 'should do nothing if parent_module is nil' do
11691169
parent_module = nil
11701170

1171-
allow_message_expectations_on_nil
1172-
parent_module.should_not_receive(:remove_const)
1173-
parent_module.should_not_receive(:const_set)
1174-
1175-
subject.send(:restore_namespace_module, parent_module, relative_name, @original_namespace_module)
1171+
# can check that NoMethodError is not raised because *const* methods are
1172+
# not defined on `nil`.
1173+
expect {
1174+
subject.send(:restore_namespace_module, parent_module, relative_name, @original_namespace_module)
1175+
}.to_not raise_error(NoMethodError)
11761176
end
11771177

11781178
context 'with namespace_module nil' do

0 commit comments

Comments
 (0)