Test Driven Development with C++

前端 未结 3 1285
醉梦人生
醉梦人生 2021-01-31 10:11

Looking to start doing TDD in C++. I\'ve seen CPPUnit, but I was wondering if there are other options that people prefer?

Thanks for your suggestions!

3条回答
  •  情话喂你
    2021-01-31 10:50

    I switched from CppUnit to boost::test some years ago and I'm much happier with it.

    • Documentation for CppUnit is nonexistent. Good luck trying to find out what command line options it supports without reading the code. Apparently it makes more sense to people already familiar with JUnit though. boost::test has excellent documentation.
    • boost::test's auto test registration facility makes adding unit test cases insanely easy. With CppUnit you have to write quite a lot of boilerplate for each test case (a line in the header and a line it the .cpp to register it, on top of the test method itself).
    • boost::test lets you select test subsets by regexp from the commandline. We had to hack CppUnit sources to get it to do that when we originally picked it up.
    • The one thing I do miss from CppUnit is its "Protectors". You can define your own and have them wrap each test and check whatever (e.g we had a problem with some code messing with the x87 floating point rounding mode; checking the state was unchanged in a Protector quickly caught all offenders). boost::test has some similar thing called a test_observer but last time I tried you couldn't actually fail a test from one.

提交回复
热议问题