MSTEST0040: '비동기 void' 컨텍스트 내에서 어설션하지 마세요.
재산 | 값 |
---|---|
규칙 ID | MSTEST0040 |
제목 | 'async void' 컨텍스트 내에서 어설션하지 마세요. |
범주 | 사용법 |
수정이 중단되거나 호환되지 않는 | 호환성이 손상되지 않는 경우 |
기본적으로 사용하도록 설정 | 예 |
기본 심각도 | 경고 |
버전 에 도입된 | 3.8.0 |
코드 수정이 있습니까 | 아니요 |
원인
async void
메서드, 로컬 함수, 람다에서의 어설션 메서드 사용.
규칙 설명
async void
컨텍스트에서 발생한 예외는 처리되지 않습니다.
async void
메서드의 실패한 어설션은 삼켜지고 .NET Framework에서 VSTest를 사용할 때 프로세스가 중단되지 않습니다. .NET에서 async void
메서드의 실패한 어설션은 Microsoft.Testing.Platform 또는 VSTest를 사용할 때 프로세스가 충돌할 수 있습니다. 예외를 catch하는 사용자 지정 SynchronizationContext
가 있는 경우 실패한 어설션이 조용히 삼켜질 수 있습니다.
위반을 해결하는 방법
async void
어설션을 사용하지 않도록 코드를 리팩터링합니다.
경고를 표시하지 않는 경우
이 규칙의 경고를 억누르지 마세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET