2014-02-28 2 views
0

프로토콜 버퍼 (C++)로 UDP를 사용하여 서로 통신하기 위해 확정 포트에서 수신 대기하는 여러 모듈이 있습니다.
각 테스트를 자동화해야합니다.
테스트를 수행하는 가장 좋은 전략은 무엇입니까?프로토콜 버퍼 테스트 C++ : expect/tcl/tk?

<commands> 
    <send cmd="blahblah" from="module1" to="module2"> 
    <expect cmd="ack" from="module2" to="module1"> 
</commands> 

하지만 난 그 /은 Tcl/Tk를 사용할 수 있습니다 기대 들었다 :

은 내가 XML로, 예를 들어, 결정 명령을 사용하여 각 구성 요소를 에뮬레이트하는 C++ 프로그램을 작성할 수 있습니다 의미한다. 몇 가지 연구를 한 후에는 직렬화 된 protobuf의 명령을 정적 텍스트로 수행 할 수 없다고 생각합니다. Expect는 출력 스트림을 사용하고 TCP/UDP 소켓에서 작동하는 구성 요소를 테스트합니다. 내가 틀렸다면 나를 바로 잡아라. 그래서이 동작 (소켓을 의미)을 달성하기위한 다른 도구가 있습니까?

나는 protobuf도 기대도 가지고 있지 않다. 몇 가지 의견을 듣고 싶습니다. 아마도이 유형의 테스트를 수행하기 위해 다른 도구를 사용할 수 있습니다.

답변

2

Expect는 이진 데이터에는 적합하지 않으므로 프로토콜 버퍼 메시지에는 사용하지 않을 것입니다.

당신이 제안한 것과 같이 기대하는 응답과 응답을 보내는 작은 C++ (또는 다른 언어) 프로그램을 작성하는 것이 좋습니다. protocol buffers text format을 사용하여 데이터를 나타낼 수 있으므로 각 메시지에 대해 수동 XML -> protobuf 변환을 작성할 필요가 없습니다.