CPPUnit을 사용하여 C 코드에 대한 단위 테스트를하고 있습니다.CPPUnit 액세스가 C 파일로 정의됩니다.
테스트 할 코드에는 h 파일이 아니라 c 파일에 정의되어 있습니다. 따라서 그들은 코드의 다른 장소에서 액세스 할 수 없습니다. 많은 정의가 배열의 크기를 설정하는 데 사용됩니다.
단위 테스트를 수행 할 때 최종 릴리스 이전에 정의가 변경된 경우에도 여전히 작동 할 수 있도록 가능한 한 역동적으로 만들고 싶습니다. 배열을 사용하여 함수를 수행하기 위해 루프와 물건을 만들었으므로 배열에 항목이있는 것처럼 여러 번 테스트합니다.하지만 지금까지는 유닛 테스트 코드에서 정의 사본을 사용합니다. 따라서 정의가 테스트 할 코드에서 변경되면 단위 테스트 코드에서 변경되지 않습니다.
내 주된 질문은 단위 테스트 용도로만 사용할 수있는 트릭이 있다면 어떻게 든 단위 테스트를 사용하기 위해 원래 소스 코드를 변경하지 않고 전역 또는 무엇인가를 정의하는 것입니다. 아마 컴파일러 설정? (저는 Visual Studio 2008을 사용하고 있습니다).
단순히 C 파일을 포함하면 어떨까요? '#include "myfile.c"'그것이 효과가 있습니까? –
또한 VS에 대해서는 잘 모르겠지만 Clang과 GCC에서는'-D = '컴파일러 플래그를 사용할 수 있습니다. –
코드를 올바르게 작성하고 정의 된 위치를 헤더 파일에 넣는 것이 어떻습니까? –