4

私はいくつかの(あまりにも少ない)単体テストを持つコードの大規模なライブラリを持っています。ライブラリにコードを追加して、新しいコードの単体テストを作成しようとしています (将来、経験を積んだら、古いコードの単体テストも追加したいと考えています)。

現在、カスタムの (あまり精巧ではない) 単体テスト フレームワークを使用しています。に切り替えたいboost.testです。

私のライブラリのレイアウトは次のとおりです。

  • mylib1 (300 ファイル、70000 行のコード)

    • ソース
      • ふー
        • 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 行のコード)

    • 上記の mylib1 のように見えます
  • UnitTestFramework

    • ソース
      • MockObject1.cpp -ここに属しますか?
      • Asserter.cpp -boost.test置き換えます
      • TestFixture.cpp -boost.test置き換えます
    • 含む
      • MockObject1.h
      • Asserter.h -boost.test置き換えます
      • TestFixture.h -boost.test置き換えます

ここで次の質問をします。

  • 単体テストはmylibDLL の一部であるべきですか? mylib1(私はとmylib2を 1 つの DLLにリンクします)
  • 単体テストのソース コードはmylib1ディレクトリの下に配置する必要がありますか?
  • 私はmylib1とを持っているのでmylib2、対応する単体テストをどのように配置する必要がありますか?兄弟ディレクトリ、一緒など?
  • モック オブジェクトのソース コードはどこに置くべきですか? (彼らは と の両方を提供mylib1しますmylib2)
4

1 に答える 1

1
  1. 単体テストは一種のドキュメントなので、ディレクトリ構造はそのままにしておきます
  2. モック/フェイクは単体テストのヘルパーであるため、ソース ディレクトリに残しません。ソースに新しいディレクトリを作成し、そこに移動します。

実際には、さらに単純化します。

 + 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
于 2012-06-25T15:01:24.837 に答える