를 감지하지 않습니다.코드 계약 정적 분석기는이 코드가 사소한 계약 위반
6
을 5
으로 바꾸면 두 번째 Divide 통화에서 경고 메시지가 나옵니다.
그러나 무엇이든지간에 never 세 번째 Divide 통화에 대한 경고가 표시됩니다. 대신, 난 그냥 런타임 오류가 발생합니다.
정적 분석기가 세 번째 줄이 계약 위반이라는 것을 감지하지 못하는 이유는 무엇입니까?
Windows 8 64 비트에서 Visual Studio 2012를 사용하고 있습니다. 코드 계약은 Microsoft Code Contracts (devlabs_TS) 1.4.51019.0 for .NET
(2012 년 12 월 현재 최신 버전 인 것 같습니다)입니다.
매우 자세히 확인 했습니까? 그 사이에 재건축이 있니? '(6에서 0으로 변경하는 방식 대신) 더 많은 테스트 호출을 설정하는 것이 더 좋습니다. –
@HenkHolterman 재건축해도 결과가 바뀌지 않습니다. 또한 세 가지 테스트 함수 ('Test1','Test2' 및'Test3')에서 세 번째 사례 (첫 번째 Divide 호출에 대해 '6', '5'및 '0')를 격리 한 다음 세 가지 테스트 함수를 사용하는 경우, 두 가지 테스트 함수 중 두 가지에서만 경고가 표시됩니다. 각 테스트 함수의 세 번째 분할 호출은 분명히 계약 위반 임에도 불구하고 경고를 얻지 못합니다. – luiscubal