0

我正在为一项介绍 Ruby 的作业进行测试驱动开发。我的 TestObject 类应该能够使用 2 个参数 a 和 b 进行初始化,但如果 b 不是数字,则应该引发 ArgumentError。这是我的初始化方法,我不确定如何引发异常然后处理它以防止所有其他测试也失败。感谢您提供任何帮助,我的教授还没有教我们关于 Ruby 中的异常,除了尝试开始、提高、救援之外,我无法在网上找到太多帮助,但这对我不起作用。

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

    raise ArgumentError unless b.is_a?
end
4

1 回答 1

2

正如@bjhaid 所说。你想要

raise ArgumentError unless b.is_a?(Numeric)

假设您使用的是 testunit。在您的测试中使用:

assert_raise ArgumentError do
  WhateverYourClassIsCalled.new('something', 'something that is not a number')
end
于 2014-02-11T00:07:42.697 回答