Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| 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.