我有一个测试课:

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

谢谢!

最佳答案

它认为InvalidColorEntry应该是一种方法,因为您执行了InvalidColorEntry "Exception not raised for invalid color",它将解析为InvalidColorEntry("Exception not raised for invalid color")

我认为您在InvalidColorEntry之后只是想念一个逗号。

10-05 18:49