diff options
Diffstat (limited to 'spec/ruby/core/array/zip_spec.rb')
| -rw-r--r-- | spec/ruby/core/array/zip_spec.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/spec/ruby/core/array/zip_spec.rb b/spec/ruby/core/array/zip_spec.rb index 7aac13536b..2a0f64cb49 100644 --- a/spec/ruby/core/array/zip_spec.rb +++ b/spec/ruby/core/array/zip_spec.rb @@ -1,5 +1,5 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) +require_relative '../../spec_helper' +require_relative 'fixtures/classes' describe "Array#zip" do it "returns an array of arrays containing corresponding elements of each array" do @@ -42,7 +42,7 @@ describe "Array#zip" do [1, 2].zip(10.upto(Float::INFINITY)).should == [[1, 10], [2, 11]] end - it "fills nil when the given enumereator is shorter than self" do + it "fills nil when the given enumerator is shorter than self" do obj = Object.new def obj.each yield 10 @@ -62,4 +62,10 @@ describe "Array#zip" do it "does not return subclass instance on Array subclasses" do ArraySpecs::MyArray[1, 2, 3].zip(["a", "b"]).should be_an_instance_of(Array) end + + it "raises TypeError when some argument isn't Array and doesn't respond to #to_ary and #to_enum" do + -> { [1, 2, 3].zip(Object.new) }.should raise_error(TypeError, "wrong argument type Object (must respond to :each)") + -> { [1, 2, 3].zip(1) }.should raise_error(TypeError, "wrong argument type Integer (must respond to :each)") + -> { [1, 2, 3].zip(true) }.should raise_error(TypeError, "wrong argument type TrueClass (must respond to :each)") + end end |
