다음을 통해 공유


MSTEST0038: 값 형식에 'Assert.AreSame' 또는 'Assert.AreNotSame'을 사용하지 마세요.

재산
규칙 ID MSTEST0038
제목 값 형식에 'Assert.AreSame' 또는 'Assert.AreNotSame'을 사용하지 마세요.
범주 사용법
수정이 중단되거나 호환되지 않는 호환성이 손상되지 않는 경우
기본적으로 사용하도록 설정
기본 심각도 경고
버전에 도입된 3.8.0
코드 수정이 있습니까?

원인

하나 또는 두 인수가 모두 값 형식인 Assert.AreSame 또는 Assert.AreNotSame 사용합니다.

규칙 설명

Assert.AreSameAssert.AreNotSame은 지정된 expected/의 notExpected 및 실제 인수를 ReferenceEquals을 통해 비교하여 작동합니다. 따라서 값 형식을 전달하면.

AreSame사용하는 경우 어설션은 항상 실패합니다. AreNotSame을 사용하는 경우 어설션은 항상 성공합니다.

AreSame의 경우, 어설션이 전달되는 유일한 조건은 두 인수가 모두 값이 null인 null 허용 값 형식인 경우입니다. 이 경우 두 개의 별도 Assert.IsNull 호출이 더 명확합니다.

위반을 해결하는 방법

Assert.AreEqual Assert.AreNotEqual대신 Assert.AreSameAssert.AreNotSame 사용합니다. Assert.AreSame를 사용하고 두 인수가 모두 null 값일 것으로 예상되는 null 허용 값 형식인 경우, 테스트 의도에 따라 두 개의 개별 Assert.IsNull 호출이 AreEqual보다 더 적합할 수 있습니다.

경고를 표시하지 않는 경우

이 규칙의 경고를 억제하지 마세요. 이 규칙을 무시하면 항상 실패하거나 항상 성공하는 어설션이 발생합니다.