2012-08-21 3 views
2

몇 가지 자동화 된 테스트를 수행하여 전송 계층이 올바르게 작동하는지 확인하고 싶습니다. 문제는 비동기 UDP 소켓을 사용하고 콜백이 호출되기 전에 테스트가 완료된다는 것입니다. 몇 바이트를 보내는 것과 같은 기본 시나리오를 테스트하고 다른 쪽에서 제대로 수신되었는지 테스트하고 싶습니다.자동화 된 비동기 소켓 테스트

질문 : 비동기 소켓으로 테스트를 자동화하는 가장 효과적인 방법은 무엇입니까?

답변

0

데이터 전달이 다른 스레드에서 발생하기 때문에 수신 콜백에서 알림을 기다리는 테스트를 차단해야합니다. 아마도 타임 아웃이 필요합니다.

+0

내가 한 것은 실제로 우아하지는 않지만 작동합니다. 내 모의 테스트에서 Verify()를 호출하기 전의 간단한 수면 (2000)이 트릭을 만들었습니다. 감사! – plmaheu

0

비동기 소켓이란 무엇입니까? 비동기 프로그래밍 모델 사용하기
트랜스 포트 계층을 테스트하려면 비동기 소켓에 집중하지 말고 집중적으로 테스트해야합니다.
전송 계층을 테스트하기 위해 두 개의 스레드에서 두 개의 소켓으로 테스트 할 수 있습니다. 하나의 스레드 읽기, 하나의 쓰기. 귀하의 프로토콜이 이미 핑 메시지를 지원한다고 가정합니다.

+0

데이터 수신에 Socket.BeginReceiveFrom을 사용합니다. 내가 가진 문제 중 하나는 BeginReceiveFrom 콜백이 호출되기 전에 테스트 함수가 종료된다는 것입니다. – plmaheu