add core/nil specs

This commit is contained in:
Laurent Sansonetti
2014-04-18 20:32:19 +02:00
parent 261ec2538a
commit 78fab5a02e
11 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
describe "NilClass#&" do
it "returns false" do
(nil & nil).should == false
(nil & true).should == false
(nil & false).should == false
(nil & "").should == false
(nil & mock('x')).should == false
end
end

View File

@@ -0,0 +1,5 @@
describe "NilClass#dup" do
it "raises a TypeError" do
lambda { nil.dup }.should raise_error(TypeError)
end
end

View File

@@ -0,0 +1,5 @@
describe "NilClass#inspect" do
it "returns the string 'nil'" do
nil.inspect.should == "nil"
end
end

View File

@@ -0,0 +1,5 @@
describe "NilClass#nil?" do
it "returns true" do
nil.nil?.should == true
end
end

View File

@@ -0,0 +1,9 @@
describe "NilClass#|" do
it "returns false if other is nil or false, otherwise true" do
(nil | nil).should == false
(nil | true).should == true
(nil | false).should == false
(nil | "").should == true
(nil | mock('x')).should == true
end
end

View File

@@ -0,0 +1,5 @@
describe "NilClass#to_a" do
it "returns an empty array" do
nil.to_a.should == []
end
end

View File

@@ -0,0 +1,9 @@
describe "NilClass#to_f" do
it "returns 0.0" do
nil.to_f.should == 0.0
end
it "does not cause NilClass to be coerced to Float" do
(0.0 == nil).should == false
end
end

View File

@@ -0,0 +1,9 @@
describe "NilClass#to_i" do
it "returns 0" do
nil.to_i.should == 0
end
it "does not cause NilClass to be coerced to Fixnum" do
(0 == nil).should == false
end
end

View File

@@ -0,0 +1,5 @@
describe "NilClass#to_s" do
it "returns the string ''" do
nil.to_s.should == ""
end
end

View File

@@ -0,0 +1,9 @@
describe "NilClass#^" do
it "returns false if other is nil or false, otherwise true" do
(nil ^ nil).should == false
(nil ^ true).should == true
(nil ^ false).should == false
(nil ^ "").should == true
(nil ^ mock('x')).should == true
end
end

View File

@@ -163,6 +163,24 @@ class Object
end
end
def raise_error(klass)
lambda do |obj, res|
begin
obj.call
if !res
puts "Expectation failed (expected `#{klass}' to be raised, but nothing happened)"
$expectations_failures += 1
end
rescue => e
if (e.is_a?(klass)) != res
puts "Expectation failed (expected `#{klass}' to be raised, got `#{e}')"
$expectations_failures += 1
end
end
$expectations_total += 1
end
end
def mock(obj)
# XXX we probably should be smarter here.
obj