autotest ohne Rails 0

Posted by fwoeck
on Saturday, December 20

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:

  1. Testfiles müssen in test/ liegen
  2. Testfilenamen müssen mit “test_” beginnen
  3. Testklassennamen müssen mit “Test” beginnen
  4. Die Implementierungen müssen in lib/ liegen
  5. Deren Filenamen müssen zu den Testfilenamen test_… passen
Comments

Leave a response

Comment