diff options
Diffstat (limited to 'spec/ruby/core/exception/result_spec.rb')
-rw-r--r-- | spec/ruby/core/exception/result_spec.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/ruby/core/exception/result_spec.rb b/spec/ruby/core/exception/result_spec.rb new file mode 100644 index 0000000000..350c071f60 --- /dev/null +++ b/spec/ruby/core/exception/result_spec.rb @@ -0,0 +1,29 @@ +require File.expand_path('../../../spec_helper', __FILE__) + +describe "StopIteration" do + it "is a subclass of IndexError" do + StopIteration.superclass.should equal(IndexError) + end +end + +describe "StopIteration#result" do + before :each do + obj = Object.new + def obj.each + yield :yield_returned_1 + yield :yield_returned_2 + :method_returned + end + @enum = obj.to_enum + end + + it "returns the method-returned-object from an Enumerator" do + @enum.next + @enum.next + lambda { @enum.next }.should( + raise_error(StopIteration) do |error| + error.result.should equal(:method_returned) + end + ) + end +end |