summaryrefslogtreecommitdiff
path: root/spec/ruby/core/exception
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2020-06-02 15:33:05 +0200
committerBenoit Daloze <eregontp@gmail.com>2020-06-02 16:57:32 +0200
commitae8362fdc89591baeb0f4d735690c17d6147f80e (patch)
tree3152ef4dfbc42935c049935231ebf88b2f157e71 /spec/ruby/core/exception
parentd05f04d27dd86c67e4a8dfff4392f806cf577bdf (diff)
Add a spec for the new NoMethodError display of the receiver
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3176
Diffstat (limited to 'spec/ruby/core/exception')
-rw-r--r--spec/ruby/core/exception/no_method_error_spec.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/ruby/core/exception/no_method_error_spec.rb b/spec/ruby/core/exception/no_method_error_spec.rb
index 55a5fccd0d..420e107ceb 100644
--- a/spec/ruby/core/exception/no_method_error_spec.rb
+++ b/spec/ruby/core/exception/no_method_error_spec.rb
@@ -103,6 +103,24 @@ describe "NoMethodError#message" do
message.should include test_class.inspect
end
end
+
+ ruby_version_is "2.8" do
+ it "uses #name to display the receiver if it is a class or a module" do
+ klass = Class.new { def self.name; "MyClass"; end }
+ begin
+ klass.foo
+ rescue NoMethodError => error
+ error.message.lines.first.should == "undefined method `foo' for MyClass:Class\n"
+ end
+
+ mod = Module.new { def self.name; "MyModule"; end }
+ begin
+ mod.foo
+ rescue NoMethodError => error
+ error.message.lines.first.should == "undefined method `foo' for MyModule:Module\n"
+ end
+ end
+ end
end
describe "NoMethodError#dup" do