2012-06-25 2 views
4

몇 가지 (너무 적음) 단위 테스트가 많은 대규모 코드 라이브러리가 있습니다. 라이브러리에 코드를 추가하고 새로운 코드에 대한 단위 테스트를 수행하려고합니다. (경험이 많으면 장래에 이전 코드에 대한 단위 테스트를 추가하고 싶습니다.)단위 테스트를 별도의 라이브러리에 두어야합니까? 별도의 하위 디렉토리?

현재 맞춤화 된 (매우 정교하지 않은) 단위 테스트 프레임 워크를 사용하고 있습니다. boost.test으로 전환하고 싶습니다.

내 라이브러리 레이아웃은 다음과 같습니다

  • mylib1 (300 개 파일, 코드의 70,000 선)

    • SRC
      • foo는
        • foo.cpp에
        • foo_part. cpp
        • foo_part.h
        • UnitTests - 외부로 이동해야합니까 mylib?
          • foo_test1.cpp
          • foo_test2.cpp
          • foo_test3.cpp
        • bar.cpp
        • bar_part.cpp
        • bar_part.h
        • UnitTests - 여기에 속한가요?
          • bar_test1.cpp
          • bar_test2.cpp
          • bar_test3.cpp
      • 포함
      • foo.h
      • bar.h
  • mylib2 (70 파일, 코드 7000 개 라인)

  • UnitTestFramework

    • SRC
      • MockObject1 위의 mylib1처럼 보인다. cpp - 여기에 속해 있습니까?
      • Asserter.cpp - boost.test가 그것을 대체 할 것이다
      • TestFixture.cpp - boost.test
      • MockObject1.h
      • Asserter.h을 포함 그것을 대체 할 것이다 - boost.test 그것을 대체 할 것입니다
      • ,363,210
      • TestFixture.h - boost.test

내가 여기에 다음과 같은 질문을하고 대체합니다 :

  • 한다 단위 테스트가 mylib DLL의 일부가 될? (하나의 DLL에 mylib1mylib2을 연결)
  • 단위 테스트를위한 소스 코드는 mylib1 디렉토리에 있어야합니까?
  • 나는 mylib1mylib2을 가지고 있기 때문에 형제 자매 목록에 함께있는 해당 단위 테스트를 어떻게 배치해야합니까?
  • 모의 객체 용 소스 코드는 어디에 두어야합니까? 그러므로 내가 않을 것, 그것은
  • 망신 시켰/가짜 단위 테스트에서 도우미입니다입니다 따라서 나는 디렉토리 구조를 떠날 것이다,

답변

1
  1. 단위 테스트 종류의 문서입니다 (그들은 모두 mylib1mylib2 봉사) 소스 디렉토리에 남겨 둡니다. 소스에 새 디렉토리를 만들고 거기에 옮깁니다.

사실, 나는 더욱 그것을 단순화 것 :

+ mylib1 (300 files, 70000 lines of code) 
    + unit_tests 
     + test_foo.cpp 
     + test_bar.cpp 
    + mocks 
     + mock_foo.hpp 
     + mock_bar.hpp 
    + foo.cpp 
    + foo.hpp 
    + bar.cpp 
    + bar.hpp 
+ mylib2 
similar as for mylib1 
+0

내가 하나의 디렉토리에 모든 300 개 파일을 채워서 트리 구조를 "단순화"갈거야 기회가 없습니다. 그래서이 대답은 대부분 "단위 테스트의 위치를 ​​변경하지 말고 정확한 위치에 있다고"생각합니다. – anatolyg

관련 문제