MSTEST0039: Użyj nowszych metod "Assert.Throws"

Property Value
Identyfikator reguły MSTEST0039
Title Użyj nowszych metod "Assert.Throws"
Category Usage
Poprawka jest przerywająca lub bez zakłóceń Non-breaking
włączone domyślnie Yes
domyślna ciężkość Ostrzeżenie rozpoczynające się od wersji 3.10 , informacje przed
wprowadzone w wersji 3.8.0
czy istnieje poprawka kodu Yes

Uwaga / Notatka

Ten analizator nie jest już istotny dla narzędzia MSTest 4, ponieważ stare interfejsy API asercji zostały usunięte.

Cause

Korzystanie z Assert.ThrowsException lub Assert.ThrowsExceptionAsync, które nie są już zalecane.

Opis reguły

Nowsze asercje wyjątków sprawiają, że kontrakt typu wyjątku jest jawny. Assert.ThrowsExactly i Assert.ThrowsExactlyAsync wymagają dokładnego typu wyjątku, a Assert.ThrowsAsync i Assert.Throws także akceptują pochodne typy wyjątków.

Aby zachować dokładne zachowanie klas Assert.ThrowsException i Assert.ThrowsExceptionAsync, przejdź na warianty ThrowsExactly. Throws Wybierz wariant tylko wtedy, gdy akceptowanie wyjątków pochodnych jest zamierzone. Starsze interfejsy API zostały usunięte w narzędziu MSTest 4.

Jak naprawić naruszenia

Użyj Assert.ThrowsExactly lub Assert.ThrowsExactlyAsync zamiast Assert.ThrowsException lub Assert.ThrowsExceptionAsync.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżenia z tej reguły. Zdecydowanie zaleca się przejście ze starych interfejsów API do nowych.