Update some ruby specs for the new message format of NoMethodError
This commit is contained in:
parent
8f868a1a65
commit
0e830e6373
Notes:
git
2023-02-20 01:33:35 +00:00
@ -62,26 +62,49 @@ describe "NoMethodError#message" do
|
|||||||
NoMethodErrorSpecs::NoMethodErrorC.new.a_private_method
|
NoMethodErrorSpecs::NoMethodErrorC.new.a_private_method
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
e.should be_kind_of(NoMethodError)
|
e.should be_kind_of(NoMethodError)
|
||||||
e.message.lines[0].should =~ /private method `a_private_method' called for #<NoMethodErrorSpecs::NoMethodErrorC:0x[\h]+>/
|
e.message.lines[0].should =~ /private method `a_private_method' called for /
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "calls receiver.inspect only when calling Exception#message" do
|
ruby_version_is ""..."3.3" do
|
||||||
ScratchPad.record []
|
it "calls receiver.inspect only when calling Exception#message" do
|
||||||
test_class = Class.new do
|
ScratchPad.record []
|
||||||
def inspect
|
test_class = Class.new do
|
||||||
ScratchPad << :inspect_called
|
def inspect
|
||||||
"<inspect>"
|
ScratchPad << :inspect_called
|
||||||
|
"<inspect>"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
instance = test_class.new
|
||||||
|
begin
|
||||||
|
instance.bar
|
||||||
|
rescue Exception => e
|
||||||
|
e.name.should == :bar
|
||||||
|
ScratchPad.recorded.should == []
|
||||||
|
e.message.should =~ /undefined method.+\bbar\b/
|
||||||
|
ScratchPad.recorded.should == [:inspect_called]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
instance = test_class.new
|
end
|
||||||
begin
|
|
||||||
instance.bar
|
ruby_version_is "3.3" do
|
||||||
rescue Exception => e
|
it "does not call receiver.inspect even when calling Exception#message" do
|
||||||
e.name.should == :bar
|
ScratchPad.record []
|
||||||
ScratchPad.recorded.should == []
|
test_class = Class.new do
|
||||||
e.message.should =~ /undefined method.+\bbar\b/
|
def inspect
|
||||||
ScratchPad.recorded.should == [:inspect_called]
|
ScratchPad << :inspect_called
|
||||||
|
"<inspect>"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
instance = test_class.new
|
||||||
|
begin
|
||||||
|
instance.bar
|
||||||
|
rescue Exception => e
|
||||||
|
e.name.should == :bar
|
||||||
|
ScratchPad.recorded.should == []
|
||||||
|
e.message.should =~ /undefined method.+\bbar\b/
|
||||||
|
ScratchPad.recorded.should == []
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -108,14 +131,14 @@ describe "NoMethodError#message" do
|
|||||||
begin
|
begin
|
||||||
klass.foo
|
klass.foo
|
||||||
rescue NoMethodError => error
|
rescue NoMethodError => error
|
||||||
error.message.lines.first.chomp.should == "undefined method `foo' for MyClass:Class"
|
error.message.lines.first.chomp.should =~ /^undefined method `foo' for /
|
||||||
end
|
end
|
||||||
|
|
||||||
mod = Module.new { def self.name; "MyModule"; end }
|
mod = Module.new { def self.name; "MyModule"; end }
|
||||||
begin
|
begin
|
||||||
mod.foo
|
mod.foo
|
||||||
rescue NoMethodError => error
|
rescue NoMethodError => error
|
||||||
error.message.lines.first.chomp.should == "undefined method `foo' for MyModule:Module"
|
error.message.lines.first.chomp.should =~ /^undefined method `foo' for /
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user