2012-06-09 2 views
0

My.Computer.Network.Ping을 사용하는 클래스에서 IP 주소 또는 호스트 이름에 연결할 수 있는지 여부에 대한 부울 값을 가져옵니다.VB.Net에서 테스트 중에 핑 (ping)을 비활성화하는 방법은 무엇입니까?

그러나 해당 클래스를 테스트 할 때 테스트 할 때마다 My.Computer.Network.Ping을 실행할 때마다 항상 false을 반환하거나 예외를 throw합니다.

나는 다음을 시도,하지만 난 여전히 true이 (작동하지 않았다 핑을 해제하는 의미, 시도)

Dim restricited As New System.Net.NetworkInformation.NetworkInformationPermission(System.Security.Permissions.PermissionState.None) 
    Dim mySocketPermission1 As New SocketPermission(PermissionState.None) 
    Dim myWebPermission As New WebPermission(PermissionState.None) 
    myWebPermission.Demand() 
    mySocketPermission1.Demand() 
    Dim ping As New PingOptions() 
    ping.DontFragment = True 
    ping.Ttl = 1 

*attempt to ping here* 
*but doesn't return the "ping failed" I wanted* 

어떤 아이디어가 얻을? 편집 : 닷넷과 (전체) 4.0 프레임 워크를 VS2010를 사용하고 있습니다

+0

ping을 수행하는 클래스의 moq를 만드시겠습니까? 가능한 경우 차단을 사용합니까? –

+0

커맨드 라인 매개 변수, 환경 변수, 레지스트리 값 등이 설정되었을 때'false'를 반환하도록 코드를 수정할 수 있습니까? 그러면 테스트 메소드가이 방법으로 핑을 비활성화 할 수 있습니까? –

+0

@PaulB. 내가 할 수 있지만 테스트에서 그것을 가지고 있고 수업을 혼자두고 싶습니다 –

답변

0

또한 호스트 파일 (당신이 호스트 이름이 아닌 IP 주소를 사용하는 가정)를 수정을 시도 할 수 있지만, 이것은 오히려 추한 것 같다 접근 ... - Paul B. Jun 9 at 15:02

Paul B의 대답은 나를 위해했습니다. Win7과 XP에서 테스트 중이지만, 호스트 파일 방식을 사용하면 XP가 까다로워 보입니다. Win7에서 제대로 작동합니다.

폴은 남자입니다.

관련 문제