Note that there are some explanatory texts on larger screens.

plurals
  1. POGoogleTest vs CppUnit: The facts
    primarykey
    data
    text
    <p>In the process of setting our C++ unit testing framework for the next years we shortlisted <strong>GoogleTest</strong> and <strong>CppUnit</strong>. I have some experience with both and my heavy preference is GoogleTest. Anyways to convince my boss I need some <strong>facts</strong> so I did some reading on the Internet, including the manuals, wiki pages and some of the sources. I came up with a list of GoogleTest advantages and a single CppUnit advantage(graphic test runners). Here they are ordered by <strong>perceived</strong> usefulness: </p> <ul> <li>INSTANTIATE_TEST_CASE_P to instantiate a test case with any set of parameters you want, including Cartesian products </li> <li>FRIEND_TEST for testing private class members(for all the legacy code) </li> <li>turning asserts into breakpoints </li> <li>non-fatal asserts </li> <li>"out of the box" googlemock integration </li> <li>automatic tests detection, no need to enumerate them</li> <li>tests can be disabled and enabled </li> <li>tests to run can be selected using name patterns </li> <li>value/type-parameterized tests </li> <li>user-defined predicate asserts </li> <li>death tests </li> <li>much richer set of asserts </li> <li>type asserts </li> <li>asserting on subroutines </li> <li>additional debug info can be added to asserts using &lt;&lt; </li> <li>RecordProperty emits last value of property to the XML output </li> <li>SCOPED_TRACE helps understand the context of an assertion failure coming from inside a sub-routine or loop. </li> <li>xUnit XML output, can be shown by Jenkins right away without a XSLT transformation in between </li> <li>supports custom types printers</li> <li>time consumed by test indication(I suspect this is also possible with CppUnit but I haven figured it out yet) </li> <li>test event listener API (user-defined plug-ins) </li> <li>test shuffling </li> <li>no exceptions and RTTI </li> </ul> <p>Am I correct in assuming that all of the above are not supported by CppUnit? Is there an useful GoogleTest feature <strong>not available</strong> in CppUnit I am missing? </p> <p>And last but not least: Are there any nice CppUnit features that GoogleTest <strong>lacks</strong>? </p> <p>Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload