저는 주로 JavaScript를 사용하는 초보 프로그래머입니다. 현재는 숙제 때문에 C++로 프로젝트를 작성하고 있습니다. 테스트는 직접 하고 싶지만 테스트에 대해서는 아무것도 모릅니다. 이 글을 읽은 후 캐치 테스트 프레임워크를 사용하기로 결정했습니다.
전에 작은 C++ 과제를 작성할 때 메인 함수에서 직접 cout<< 제출하기 전에 삭제하거나, 새 cpp 파일을 만들고 메인 함수를 추가한 다음 임시로 메인 함수의 이름을 바꾸었습니다. (일반적으로 메인 함수의 이름을 main00 등으로 변경합니다.) XCode에서 Run을 클릭하여 일시적으로 테스트합니다. 주로 특정 위치의 불확실성을 테스트한 다음 테스트가 완료된 후 다시 변경합니다. .
그런데 위에 열거한 방법들은 정말 멍청하고 선배님들을 웃게 만드는 방법인 것 같아요.
내 프로젝트 디렉토리는 이제 다음과 같습니다(C++에서 minisql을 구현하는 작업입니다):
현재 각 파일에는 실제로 내용이 없습니다. 각 폴더는 모듈을 나타내며 각 모듈 간의 관계는 다음과 같습니다.
한 부분을 작성하고 한 부분을 테스트할 계획입니다(예: BufferManager를 먼저 작성). 테스트에 문제가 없으면 다음 부분을 계속 작성합니다.
이제 테스트 파일 구성에 관해 다음과 같은 질문이 있습니다.
테스트 파일을 해당 모듈 파일 디렉터리에 넣어야 하나요? 아니면 별도의 테스트 파일이 있나요?
각 모듈마다 별도의 테스트 파일이 있어야 하나요?
그리고 두 개의 테스트 파일을 작성하면 주석 처리를 해도#define CATCH_CONFIG_MAIN
다른 테스트 파일을 모두 주석 처리하지 않으면 이 파일이 정상적으로 실행되지 않는다는 사실을 발견했습니다.
그리고, 엔트리 파일(NewSQL.cpp에 메인 함수가 있음)을 작성한 후, 이 테스트 파일들을 어떻게 실행해야 하나요? 아직도 댓글 달고 댓글 달고 계시나요....
제가 질문한 내용이 좀 너무 멍청한 것 같지만, 테스트를 올바르게 작성하고 사용하는 방법을 정말 알고 싶습니다. 인터넷에서 아주 정확한 답변을 찾을 수 없어서 여기에 질문을 하게 되었습니다. 감사합니다~
(잘못된 부분이 있다고 생각되시면 지적해주시면 심각하게 정정하겠으나 인신 공격은 삼가해 주시기 바랍니다. 답변이 참고할만한 가치가 있는 경우에는 비공개 메시지도 보내드리도록 하겠습니다. 일정 금액의 빨간 봉투 보수가 필요함, 학생 파티, 감정 표현)
첨부된 캐치포털: https://github.com/philsquare...
테스트 코드와 프로덕션 코드는 분리되어 명명에 관련됩니다.
예를 들어 클래스 A의 테스트 클래스는 AUnitTest 또는 ATest 또는 AUT라고 합니다
각 모듈마다 별도의 테스트 파일
테스트 파일에는 자체 항목 파일이 있습니다
핵심은 프로젝트 구성입니다. 테스트 프로젝트는 프로덕션 코드에 따라 달라지며 프로덕션 코드는 테스트 코드에 의존하지 않습니다.
2개는 실행 가능한 프로그램 2개를 제작할 수 있어야 합니다. 이러한 목표에 따라 프로젝트를 구성하세요