2014-04-10 15 views
43

Jaka jest różnica między TestInitialize vs ClassInitialize w MSTest? Jakie są plusy każdego z nich?TestInitialize vs ClassInitialize

Mam wrażenie, że TestInitialze powinien działać z KAŻDYM testem, za każdym razem? Czy to jest poprawne? I że ClassInitialize będzie uruchamiać za każdym razem nowe wystąpienie dowolnej klasy?

Odpowiedz

67

Oba atrybuty są dostępne tylko dla klas (a więc i testów), do których należą.

TestInitialize biegnie przed każdym testem że jest zadeklarowana w tej samej klasiegdzie atrybut jest zadeklarowana.

ClassInitialize uruchamia tylko o inicjalizacji klasy, w której deklarowany jest atrybut. Innymi słowy, nie będzie działać dla każdej klasy. Tylko dla klasy, która zawiera metodę ClassInitialize.

Jeśli chcesz, aby metoda była uruchamiana raz przed wszystkimi testami lub inicjalizacją klas, użyj AssemblyInitialize.

+1

Jaki byłby pożytek z ClassInitialize i AssemblyInitialize? Ciężko mi znaleźć rzeczywisty przypadek użycia ClassInitialize ... – Invader

Powiązane problemy