Test Driven Development with C++

Szukam zacząć robić TDD w C++. Widziałem CPPUnit, ale zastanawiałem się, czy są inne opcje, które ludzie wolą?

Dzięki za sugestie!

Author: hahuang65, 2011-03-15

3 answers

Mogę polecić Google Mock , który stał się częścią pakietu Google Test. Kilka lat temu przeszliśmy z UnitTest++ na Google Test/Google Mock i nigdy nie oglądaliśmy się za siebie.

Google Mock może być używany nawet jeśli nie chcesz korzystać z udogodnień wyśmiewania. Jego matchery bardzo przydatne .

 28
Author: Tobias Furuholm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-14 14:44:09

Kilka lat temu zmieniłem CppUnit na boost::test i jestem z tego znacznie szczęśliwszy.

  • Dokumentacja CppUnit nie istnieje. Powodzenia próbując dowiedzieć się Jakie opcje linii poleceń obsługuje bez czytania kodu. Najwyraźniej jednak ma to większy sens dla osób już zaznajomionych z JUnit. boost:: test posiada doskonałą dokumentację.
  • boost:: test ' s Auto Test registration facility sprawia, że dodawanie przypadków testów jednostkowych jest szalenie łatwe. Z CppUnit trzeba napisać sporo boilerplate dla każdego przypadku testowego (wiersz w nagłówku i wiersz to .cpp, aby go zarejestrować, na górze samej metody badania).
  • boost::test pozwala wybrać podzbiory testowe za pomocą wyrażenia regularnego z linii poleceń. Musieliśmy zhakować Źródła CppUnit, żeby to zrobić, kiedy je odebraliśmy.
  • Theone thing I domiss from CppUnit is its "Protectors ". Możesz zdefiniować własne i je owinąć każdy test i sprawdzanie cokolwiek (np. mieliśmy problem z jakimś kodem mieszającym się z trybem zaokrąglania zmiennoprzecinkowego x87; sprawdzanie stanu było niezmienione w Protektorze szybko złapało wszystkich przestępców). boost:: test ma coś podobnego o nazwie a test_observer ale ostatnim razem, gdy próbowałem, nie mogłeś oblać testu z jednego.
 10
Author: timday,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-30 17:49:43

Jeśli szukasz frameworków do testów jednostkowych C++, zobacz to pytanie i odpowiedzi na nie: C++ unit testing framework

 6
Author: Fred Larson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:10