[Libreoffice-commits] cppunit.git: examples/simple include/cppunit
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Nov 2 05:03:30 UTC 2018
examples/simple/ExampleTestCase.cpp | 15 +++++++++++++++
include/cppunit/extensions/HelperMacros.h | 23 +++++++++++++++++++++++
2 files changed, 38 insertions(+)
New commits:
commit 48145587c4c2dc4f1e07d83073e136336c81ce79
Author: Miklos Vajna <vmiklos at collabora.co.uk>
AuthorDate: Fri Oct 12 21:34:07 2018 +0200
Commit: Markus Mohrhard <markus.mohrhard at googlemail.com>
CommitDate: Fri Nov 2 06:03:13 2018 +0100
extensions: add CPPUNIT_TEST_FIXTURE()
This is similar to googletest's TEST_F() macro, allows to avoid spelling
out the test name in a suite only once, not 3 times.
Change-Id: I90804d271d046d8158678617d8db75ed6ca7c420
Reviewed-on: https://gerrit.libreoffice.org/61732
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
diff --git a/examples/simple/ExampleTestCase.cpp b/examples/simple/ExampleTestCase.cpp
index c45109f..823a8df 100644
--- a/examples/simple/ExampleTestCase.cpp
+++ b/examples/simple/ExampleTestCase.cpp
@@ -45,3 +45,18 @@ void ExampleTestCase::testEquals()
CPPUNIT_ASSERT_EQUAL( 12, 13 );
CPPUNIT_ASSERT_DOUBLES_EQUAL( 12.0, 11.99, 0.5 );
}
+
+class FixtureTest : public CPPUNIT_NS::TestFixture
+{
+};
+
+CPPUNIT_TEST_FIXTURE(FixtureTest, testEquals)
+{
+ CPPUNIT_ASSERT_EQUAL( 12, 12 );
+}
+
+CPPUNIT_TEST_FIXTURE(FixtureTest, testAdd)
+{
+ double result = 2.0 + 2.0;
+ CPPUNIT_ASSERT( result == 4.0 );
+}
diff --git a/include/cppunit/extensions/HelperMacros.h b/include/cppunit/extensions/HelperMacros.h
index 4c30319..34be2ca 100644
--- a/include/cppunit/extensions/HelperMacros.h
+++ b/include/cppunit/extensions/HelperMacros.h
@@ -240,6 +240,29 @@ public: \
private: /* dummy typedef so that the macro can still end with ';'*/ \
typedef int CppUnitDummyTypedefForSemiColonEnding__
+/*! \brief Define test suite with a single test.
+ *
+ * This macro declares a new test suite with a single test and a single parent
+ * class. Use CPPUNIT_TEST_SUITE(), CPPUNIT_TEST() and
+ * CPPUNIT_TEST_SUITE_END() instead if you wish to include more tests in the
+ * suite. The benefit of using this macro is that you don't have to declare,
+ * register and define your test name manually, so you don't repeat yourself.
+ *
+ * \param TestClass Base class. This type \b MUST be derived from TestFixture.
+ * \param TestName Name of the test.
+ * \see CPPUNIT_TEST_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END
+ */
+#define CPPUNIT_TEST_FIXTURE(TestClass, TestName) \
+ class TestName : public TestClass \
+ { \
+ public: \
+ void TestBody(); \
+ CPPUNIT_TEST_SUITE(TestName); \
+ CPPUNIT_TEST(TestBody); \
+ CPPUNIT_TEST_SUITE_END(); \
+ }; \
+ CPPUNIT_TEST_SUITE_REGISTRATION(TestName); \
+ void TestName::TestBody()
/*! \brief Add a test to the suite (for custom test macro).
*
More information about the Libreoffice-commits
mailing list