I'm programming some unit test with the Google test framework. But I want to check whether some asserts are well placed and are useful. Is there a way to catch an assert in Google test?
Example code under test:
int factorial(int n){ assert(n >= 0); //.... }
And then the test:
#include <gtest/gtest.h> TEST(FactorialTest,assertNegative){ EXPECT_ANY_THROW({ factorial(-1); }); }
But EXPECT_ANY_THROW
doesn't catch the assert but only exceptions. I'm searching for a solution to catch asserts.
Independent and Repeatable: Googletest isolates the tests by running each of them on a different object. Portable and Reusable: Googletest works on different Oses (Linux, Windows, or a Mac), with different compilers. When tests fail, it should provide as much information about the problem as possible.
gtest-parallel is a script that executes Google Test binaries in parallel, providing good speedup for single-threaded tests (on multi-core machines) and tests that do not run at 100% CPU (on single- or multi-core machines).
ASSERT: Fails fast, aborting the current function. EXPECT: Continues after the failure.
Google test provides ASSERT_DEATH
, EXPECT_DEATH
and other related macros.
This question and What are Google Test, Death Tests are each other's answers. Does that make them duplicates, or not? ;-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With