Как организовать тестовые случаи с Boost :: Test Library? - PullRequest
8 голосов
/ 05 июля 2010

У меня есть проект из 50+ .H/.CPP файлов / классов.Я хотел бы протестировать каждый класс с его собственным контрольным примером, который будет включать методы для тестирования различных аспектов каждого класса.Мои классы расположены в разных каталогах, например:

/project
  /include
    /SuperModule
      Foo.h
      Foo.cpp
      ..
    Alpha.h
    Alpha.cpp
    ..
  /test         // I assume that my tests shall be here
  main.cpp
  Makefile

Я хотел бы использовать boost :: test в качестве фреймворка для юнит-тестирования.Как мне организовать свои файлы, как их назвать и т. Д. Подсказка, ссылка или предложение будут оценены.Спасибо.

1 Ответ

2 голосов
/ 06 июля 2010

Мы используем boost :: test в похожем макете. Наш макет -

/project
  /include
    /SuperModule
       /Foo
        foo.c
        foo.h
        /foo_unittest
            foo_unittest.c   // note - no separate header file is required 
                             // for boost::test unit test.exe program.

Основное правило макета - поместить модульный тест для класса в подкаталог с именем «foo_unittest» после класса в том же каталоге, что и исходный код. Преимущество этого наименования

  1. Исходный код и каталог хранятся рядом друг с другом. Таким образом, вы можете проверить, написали ли вы модульный тест или нет.
  2. Кроме того, когда вы копируете исходный код, легко скопировать модульный тест на в то же время.

Поскольку наши проекты не слишком сложны (30-50 основных классов), эта система работает для нас. Если вы работаете с большими проектами, я не думаю, что это было бы оптимальным решением.

...