Testowanie wystąpienia zdarzenia

24 listopada 2008 19:28 w kategorii: pro
Tagi: ,

Podczas implementacji testów jednostkowych zachodzi czasami potrzeba napisania kodu weryfikującego zachowanie obiektów po wystąpieniu zdarzeń. Scenariusz taki jest wspierany przez tzw "mocking frameworks". Za świetny przykład może służyć odświeżony w wersji 3.5 mechanizm biblioteki Rhino.Mocks ze swoją metodą rozszerzającą Raise.

Co jednak w sytuacji odwrotnej, gdy nie chcemy badać reakcji na zdarzenie, a jedynie upewnić się, że zostało ono wywołane? Sposób przedstawiony tutaj ("Test Event Was Raised") nie bardzo mi się podoba. Wystarczyło jednak chwilę pomyśleć żeby strząchnąć zaciemnienie z ciemienia i napisać:

  1:  var someClass = new SomeClass();
  2:  bool eventRaised = false;
  3:  someClass.TestEvent += delegate
  4:  {
  5:  	eventRaised = true;
  6:  };
  7:  
  8:  someClass.ShouldRaise();
  9:  Assert.IsTrue(eventRaised);

Mi to wygląda bardziej "kompaktowo".


Oceń i podyskutuj na http://zine.net.pl!


Komentarze zamknięte