이번 질문에 처음으로 질문을 올리니 제 질문을 개선 할 수 있는지 알려주십시오.CMock/Unity를 Automake와 어떻게 통합합니까?
원시 파일을 조롱 된 버전으로 교체해야하는 단위 테스트를 어떻게 체계적으로 구축하는지에 대한 지침을 찾고 있습니다. CMock에 의해 생성 된 소스 파일의. CMock에서는 모의를 사용하는 단위 테스트 코드가 원본 소스 대신 모의 소스와 연결되어야하기 때문에 필요합니다. 내가 모의 foo는에 다음 테스트 소스 파일 foo는()를 호출 기능 test_me(), TEST.C을 테스트입니다 경우
예를 들어,() I입니다) (test_test_me: test_me.c, Mockfoo.c, and test.c.
test_me을 컴파일해야합니다 일반적으로 다음과 같이 컴파일됩니다 test_me: test_me.c and foo.c
Mockfoo.c는 foo.h를 사용하여 CMock에서 제공 한 Ruby 스크립트를 사용하여 생성됩니다.
테스트 프로그램을 만들려면 foo.c
을 Mockfoo.c
으로 바꾸어야합니다. test_test_me
. test_test_me가 원래 foo 호출이 아니라 foo의 조롱 된 호출에 링크 할 수 있도록 Mockfoo.c가 필요합니다. 종속성의 수가 증가하면 소스 대체가 어려워집니다.
예를 들어, test_me가 foo.o, bar.o 및 baz.o로 구성된 라이브러리 libfoo.a의 foo, bar 및 baz를 사용하고 foo에 대한 호출을 모의하려는 경우 컴파일 단위 Mockfoo.o, bar.o 및 baz.o를 사용하여 libfoo.a를 빌드하여 모의 foo 호출을 사용하는 test.o
에 링크해야합니다. Mockfoo, Mockbar, baz가 아닌 Mockfoo, Mockbar)와 다른 automake 규칙, 플래그 등이있는 큰 소스 트리가있는 경우 더욱 복잡해집니다.
또한 mock 추가는 mocks가 필요하므로 간단해야합니다. 우리 단위 테스트에 종종 필요합니다.
일부 컨텍스트 :
나는 코드가 리팩토링하거나 새로운 코드가있는 난 그냥 합류하는 큰 C 프로젝트에 추가되는 경우에 단위 테스트를 추가 CMock/Unity 사용에 관심이 있어요.
이 프로젝트는 현재 Automake를 빌드 도구로 사용하며 여기에 머물러 있습니다.
저는 Automake를 처음 사용했습니다. 나는 SCons와 CMock에 익숙하다.
동의합니다. 루비 도구를 사용하십시오. 해당 레이크 기반 빌드 도구를 Ceedling이라고합니다. 나는 그것을 시작하기위한 연습이있다 : http://www.electronvector.com/blog/try-embedded-test-driven-development-right-now-with-withling 함께 사용할 수 없다. 테스트를 실행하기 위해 사이드 Automake를 사용하십시오. Ceedling 프로젝트의 "vendor"폴더를 프로젝트에 놓은 다음 project.yml과 rakefile을 가져옵니다.rb 파일도 포함됩니다. 그런 다음 프로젝트 트리와 일치하도록 project.yml 폴더에서 소스 및 테스트 폴더 구성을 변경하십시오. – cherno