2009-08-10 7 views
0

Ich habe eine Testklasse:Wie überprüft man, ob eine benutzerdefinierte Ausnahme in einer Ruby-App ausgelöst wird?

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 ist eine Ausnahmeklasse, die ich wie so in der car.rb Datei platziert:

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

Wenn ich den Test ausführen, ist Rubin sagt mir, dass "InvalidColorEntry" ist eine nicht definierte Methode. Ich habe sogar versucht, die Definition der Ausnahmeklasse in die Testdatei aufzunehmen, obwohl ich das nicht möchte.

Wie kann ich meine Testdatei über die benutzerdefinierte Ausnahmedefinition informieren? Es sieht offensichtlich die car.rb-Datei, weil es in der Lage ist, Car.set_color

anzurufen Danke!

Antwort

1

Es denkt InvalidColorEntry ist eine Methode, weil Sie InvalidColorEntry "Exception not raised for invalid color" tun, die es als InvalidColorEntry("Exception not raised for invalid color") analysiert.

Ich glaube, Sie fehlen nur ein Komma nach InvalidColorEntry.

Verwandte Themen