我正在为Ruby的介绍进行测试驱动开发。我的TestObject类应该能够使用2个参数a和b进行初始化,但如果b不是数字,那么应该引发ArgumentError。这是我的初始化方法,我不知道如何引发异常,然后处理它以防止所有其他测试失败。感谢任何帮助,我的教授还没有教过我们关于Ruby的例外情况,除了尝试开始,加注,救援之外我还没有找到太多的在线帮助,但这对我没有用。
def initialize(a,b)
@a = a
@b = b
raise ArgumentError unless b.is_a?
end
答案 0 :(得分:1)
正如@bjhaid所说。你想要
raise ArgumentError unless b.is_a?(Numeric)
假设你正在使用testunit。在您的测试中使用:
assert_raise ArgumentError do
WhateverYourClassIsCalled.new('something', 'something that is not a number')
end