Normalerweise erwartet ZenTest die Verwendung eines Frameworks wie Rails. Wie sieht’s mit einfachen Rubyprojekten aus?
Wenn man seine .rb-Files nach ./lib und seine Testfiles nach ./test kopiert, klappt’s. rSpecs müssten nach ./spec.
Beispiel:
- lib/person.rb:
1 2 3 4 5 6 7 8 9 10 11 12 |
class Person attr_reader :name,:age, :year_born def initialize(name, age) @name=name @age=age @year_born = Time.now.year - age - 1 end def days_alive @age * 365 end end |
- test/person_test.rb:
1 2 3 4 5 6 7 8 |
require 'person' class TestPerson < Test::Unit::TestCase def test_simple assert_equal(1964, Person.new("Al",43).year_born) assert_equal(15695, Person.new("Al",43).days_alive) end end |
Konventionen
Für die Namen von Klassen und Files gelten folgende Regeln:
- Testfiles müssen in test/ liegen
- Testfilenamen müssen mit “test_” beginnen
- Testklassennamen müssen mit “Test” beginnen
- Die Implementierungen müssen in lib/ liegen
- Deren Filenamen müssen zu den Testfilenamen test_… passen