如何检查Ruby应用程序中是否引发了自定义异常?

时间:2009-08-10 17:35:05

标签: ruby exception testing

我有一个测试类:

require File.dirname(__FILE__) + '/../car.rb'
class CarTest < Test::Unit::TestCase

   def test_set_color
      assert_raise InvalidColorEntry "Exception not raised for invalid color" do
        Car.set_color("not a color")
      end
   end

end

InvalidColorEntry是我放在car.rb文件中的异常类,如下所示:

class InvalidColorEntry < Exception; end
class Car
   ...
end

当我运行测试时,ruby告诉我“InvalidColorEntry”是一个未定义的方法。我甚至试图在测试文件中包含异常类定义,即使我不想这样做。

如何让我的测试文件知道自定义异常定义?它显然可以看到car.rb文件,因为它可以调用Car.set_color

谢谢!

1 个答案:

答案 0 :(得分:1)

它认为InvalidColorEntry应该是一个方法,因为你执行InvalidColorEntry "Exception not raised for invalid color",它会解析为InvalidColorEntry("Exception not raised for invalid color")

我认为你只是在InvalidColorEntry之后错过了一个逗号。