내 프로그램에 대한 테스트 환경을 어떻게 작성해야 합니까?

내 프로그램에 대한 테스트 환경을 어떻게 작성해야 합니까?

프로그램, 해당 입력 및 원하는 출력이 있는 경우 프로그램에서 제공하기를 원하는 것과 실제로 제공하는 것을 자동으로 비교하려면 어떻게 해야 합니까? 예를 들어:

a=${./program < inputfile}
diff ${a} outputfile

답변1

diff파일 이름을 인수로 전달하십시오. 대신 명령의 표준 출력에서 ​​데이터를 전달하십시오. bash, zsh 또는 기타 유사한 셸을 사용하는 경우 프로세스 대체를 사용할 수 있습니다.

diff <(./program < inputfile) outputfile

또는 POSIXly(이름이 지정된 파이프를 사용할 수도 있지만 이는 약간 과잉일 수 있음):

./program < inputfile > /tmp/program-out
diff /tmp/program-out outputfile
rm /tmp/program-out

관련 정보