在Ruby中引发错误并处理它

时间:2014-02-10 23:48:27

标签: ruby tdd raise

我正在为Ruby的介绍进行测试驱动开发。我的TestObject类应该能够使用2个参数a和b进行初始化,但如果b不是数字,那么应该引发ArgumentError。这是我的初始化方法,我不知道如何引发异常,然后处理它以防止所有其他测试失败。感谢任何帮助,我的教授还没有教过我们关于Ruby的例外情况,除了尝试开始,加注,救援之外我还没有找到太多的在线帮助,但这对我没有用。

def initialize(a,b)
    @a = a
    @b = b

    raise ArgumentError unless b.is_a?
end

1 个答案:

答案 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