Tijd testen

Geplaatst door Michiel de Mare zo, 27 aug 2006 21:57:00 GMT

Stel dat je een unittest wil schrijven voor een module die data gebruikt. Je wilt zelf verschillende randvoorwaarden testen zonder de systeemtijd aan te passen. Hoe doe je dat? In Java moet je je gehele code-base doorspitten naar vormen van new Date() en Calendar.getInstance() en die vervangen door een of andere DateFactory, via welke je unittest de datum kan manipuleren.

In Ruby doe je dit:

  def setup
    class <<Time
      attr_accessor :now
    end
  end

  def teardown
    class <<Time
      alias_method :now, :new
    end
  end

  def test_date
    Time.now = CHRISTMAS_1997
    assert MyClass.new.turkey?
    Time.now = EC_FINAL_1988
    assert !MyClass.new.turkey?
  end

Geplaatst in  | geen reacties

Reacties

(Laat url/e-mail achter »)

   Voorvertoning