在Ruby-Junior Dev中将枚举数作为消息返回给异常
我正在使用Ruby 1.9.3。我正试图通过以下测试,但我无法更改:在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
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