MSTEST0038: 값 형식에 'Assert.AreSame' 또는 'Assert.AreNotSame'을 사용하지 마세요.
재산 | 값 |
---|---|
규칙 ID | MSTEST0038 |
제목 | 값 형식에 'Assert.AreSame' 또는 'Assert.AreNotSame'을 사용하지 마세요. |
범주 | 사용법 |
수정이 중단되거나 호환되지 않는 | 호환성이 손상되지 않는 경우 |
기본적으로 사용하도록 설정 | 예 |
기본 심각도 | 경고 |
버전에 도입된 |
3.8.0 |
코드 수정이 있습니까? | 예 |
원인
하나 또는 두 인수가 모두 값 형식인 Assert.AreSame 또는 Assert.AreNotSame 사용합니다.
규칙 설명
Assert.AreSame 및 Assert.AreNotSame은 지정된 expected
/의 notExpected
및 실제 인수를 ReferenceEquals
을 통해 비교하여 작동합니다. 따라서 값 형식을 전달하면
AreSame
사용하는 경우 어설션은 항상 실패합니다.
AreNotSame
을 사용하는 경우 어설션은 항상 성공합니다.
AreSame
의 경우, 어설션이 전달되는 유일한 조건은 두 인수가 모두 값이 null인 null 허용 값 형식인 경우입니다. 이 경우 두 개의 별도 Assert.IsNull
호출이 더 명확합니다.
위반을 해결하는 방법
Assert.AreEqual
Assert.AreNotEqual
대신 Assert.AreSame
및 Assert.AreNotSame
사용합니다.
Assert.AreSame
를 사용하고 두 인수가 모두 null 값일 것으로 예상되는 null 허용 값 형식인 경우, 테스트 의도에 따라 두 개의 개별 Assert.IsNull
호출이 AreEqual
보다 더 적합할 수 있습니다.
경고를 표시하지 않는 경우
이 규칙의 경고를 억제하지 마세요. 이 규칙을 무시하면 항상 실패하거나 항상 성공하는 어설션이 발생합니다.
.NET