Korzystanie z klas potwierdzeń
Należy użyć klas Assert przestrzeni nazw UnitTestingFramework, aby sprawdzić określoną funkcjonalność.Metoda testu jednostki wykonuje kod metody w kodzie rozwoju, lecz tylko wtedy, gdy zawierają instrukcje Assert zgłasza poprawność kodu zachowania.
Rodzaje potwierdzeń
Przestrzeń nazw Microsoft.VisualStudio.TestTools.UnitTesting udostępnia kilka rodzajów klas Assert:
W metodzie testowej można wywołać dowolną liczbę metod klasy Assert, takich jak Assert.AreEqual().Klasa Assert ma wiele metod do wyboru i wiele z tych metod ma kilka przeciążeń.
Klasa CollectionAssert służy do porównywania kolekcji obiektów i sprawdzania stanu jednej lub wielu kolekcji.
Klasa StringAssert służy do porównywania ciągów znaków.Klasa ta zawiera różne użyteczne metody, takie jak StringAssert.Contains, StringAssert.Matches i StringAssert.StartsWith.
Wyjątek AssertFailedException jest generowany, gdy test zakończy się niepowodzeniem.Test zakończy się niepowodzeniem, jeżeli zostanie przekroczony limit czasu, zostanie zgłoszony nieoczekiwany wyjątek lub zawiera instrukcję Assert, która się nie powiedzie.
AssertInconclusiveException jest zgłaszany, gdy test daje niejednoznaczny wynik.Zazwyczaj dodaje się instrukcję Assert.Inconclusive do testu, nad którym nadal się pracuje, aby wskazać, że nie jest jeszcze gotowy do uruchomienia.
[!UWAGA]
Alternatywna strategia może oznaczyć test, który nie jest gotowy do uruchomienia z atrybutem Ignore.Jednakże wadą jest, że nie można łatwo wygenerować raportu, jeśli zostały jeszcze testy do zaimplementowania.
Jeśli pisze się nową klasę wyjątków Assert, należy dziedziczyć z klasy bazowej UnitTestAssertException, aby ułatwić zidentyfikowanie wyjątku jako błędu potwierdzenia, zamiast nieoczekiwanego wyjątku w kodzie testu lub produkcji.
Należy ozdobić metodę testową atrybutem ExpectedExceptionAttribute, gdy metoda testowa ma zweryfikować, że oczekiwany, zgłoszony przez metodę wyjątek w wytwarzanym kodzie, jest rzeczywiście wyjątkiem tej metody.
Zobacz też
Informacje
Microsoft.VisualStudio.TestTools.UnitTesting
Inne zasoby
Tworzenie i uruchamianie testów jednostki dla istniejącego kodu