Używam Visual Studio 2010 Beta 2. Mam jeden [TestClass]
, który ma [TestInitialize]
, [TestCleanup]
a kilka [TestMethods]
.
Za każdym razem, gdy uruchamiana jest metoda testowa, uruchamiane są RÓWNIEŻ metody inicjowania i czyszczenia!
Odniosłem wrażenie, że [TestInitialize]
& [TestCleanup]
powinno być uruchamiane tylko raz, podczas lokalnego testu.
Czy to jest poprawne? Jeśli nie, jaki jest właściwy sposób, aby to zrobić?
jest to raczej standardowe zachowanie dla zestawów testów: konfiguracja i rozłączanie przed i po każdym teście. Filozofia jest taka, że testy nie powinny od siebie zależeć. Jeśli chcesz innego zachowania, prawdopodobnie powinieneś użyć statycznych obiektów, które pozostają między każdym testem.
źródło
Pełny przykład zaczerpnięty z dokumentacji firmy Microsoft :
źródło
Metody oznaczone atrybutem [TestInitialize ()] służą do przygotowania aspektów środowiska, w którym będzie wykonywany test jednostkowy. Ma to na celu ustalenie znanego stanu uruchamiania testu jednostkowego. Możesz użyć metody [TestInitialize ()], aby skopiować, zmienić lub utworzyć określone pliki danych, których użyje Twój test.
Utwórz metody, które są oznaczone atrybutem [TestCleanUp {}], aby przywrócić środowisko do znanego stanu po wykonaniu testu. Może to oznaczać usunięcie plików w folderach lub przywrócenie bazy danych do znanego stanu. Przykładem tego jest zresetowanie bazy danych zapasów do stanu początkowego po przetestowaniu metody używanej w aplikacji do wprowadzania zamówień.
Więcej informacji można znaleźć pod adresem : http://msdn.microsoft.com/en-us/library/ms182517%28v=vs.100%29.aspx
źródło