2009-08-10 4 views
0

J'ai une classe de test:Comment vérifier si une exception personnalisée est déclenchée dans une application Ruby?

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 est une classe d'exception que j'ai placé dans le fichier car.rb comme ceci:

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

Quand je lance le test, rubis me dit que "InvalidColorEntry" est une méthode non définie. J'ai même essayé d'inclure la définition de classe d'exception dans le fichier de test même si je ne veux pas faire cela.

Comment puis-je faire connaître la définition d'exception personnalisée à mon fichier de test? Il voit évidemment le fichier car.rb car il est capable d'appeler Car.set_color

Merci!

Répondre

1

Il pense InvalidColorEntry est censé être une méthode parce que vous faites InvalidColorEntry "Exception not raised for invalid color", qu'il analyse comme InvalidColorEntry("Exception not raised for invalid color").

Je pense qu'il vous manque juste une virgule après InvalidColorEntry.

Questions connexes