在Ruby-Junior Dev中将枚举数作为消息返回给异常

在Ruby-Junior Dev中将枚举数作为消息返回给异常,ruby,exception,enumerator,Ruby,Exception,Enumerator,我正在使用Ruby 1.9.3。我正试图通过以下测试,但我无法更改: def test_raising_unordered_enumerator_should_reference_enumerator decending_enumerator = 10.downto(1) enumerator = CombinedOrderedEnumerator.new(decending_enumerator) begin enumerator.take(2) assert f

我正在使用Ruby 1.9.3。我正试图通过以下测试,但我无法更改:

def test_raising_unordered_enumerator_should_reference_enumerator
  decending_enumerator = 10.downto(1)
  enumerator = CombinedOrderedEnumerator.new(decending_enumerator)

  begin
    enumerator.take(2)
    assert false
  rescue CombinedOrderedEnumerator::UnorderedEnumerator => exception
    assert_equal decending_enumerator, exception.message
  end
end
我已经编写了以下代码(参数*args始终是零个或多个枚举器对象):

类组合有序重分子raise CombinedOrderedEnumerator::UnorderedEnumerator,arg除非arg。每个都是(2)。全部?{| a,b |(ab)您可以重写异常类的行为:

  class UnorderedEnumerator < RuntimeError
    def initialize(message)
      @message = message
    end

    def message
      @message
    end
  end
类无序分子
与对象相比,上次检查的消息字符串是一个字符串。应该是一个字符串,它应该匹配。同意,但是如果我必须要一个对象呢?我会这样做。抱歉,应该指定。您还声明您不能更改测试,所以我的注释可能超出范围。公平地说,我只是在您poi之后添加了这个把显而易见的事情说出来。
1) Failure:
test_raising_unordered_enumerator_should_reference_enumerator(CombinedOrderedEnumeratorTest) [combined_enumerator_test.rb:102]:
Expected: #<Enumerator: 10:downto(1)>
Actual: "#<Enumerator:0x007ffae1846d20>"
1) Failure:
test_raising_unordered_enumerator_should_reference_enumerator(CombinedOrderedEnumeratorTest) [combined_enumerator_test.rb:102]:
Expected: #<Enumerator: 10:downto(1)>
Actual: "#<Enumerator: 10:downto(1)>"
  class UnorderedEnumerator < RuntimeError
    def initialize(message)
      @message = message
    end

    def message
      @message
    end
  end