// // Listing 6: Anwendung von CppUnit // #include #include #include int global_error = 0; // Störfaktor für Tests // Klasse,die getestet werden soll class Calculator { public: Calculator (int in_base) : base(in_base) {} // Wert addieren int add(int num) { return base + num + global_error; } // Wert subtrahieren int sub(int num) { return base - num - global_error; } private: int base; }; // Helfer-Klasse mit den Unit-Tests class Calculator_test : public CppUnit::TestFixture { public: CPPUNIT_TEST_SUITE( Calculator_test ); CPPUNIT_TEST(test_add); CPPUNIT_TEST(test_sub); CPPUNIT_TEST_SUITE_END(); public: void test_add(); void test_sub(); }; // Tests automatisch eintragen CPPUNIT_TEST_SUITE_REGISTRATION(Calculator_test); // Tests der Additions-Methode void Calculator_test::test_add() { Calculator calc(100); CPPUNIT_ASSERT_EQUAL(123, calc.add(23)); } // Tests der Subtractions-Methode void Calculator_test::test_sub() { Calculator calc(100); CPPUNIT_ASSERT_EQUAL(78, calc.sub(22)); } int main(int argc, char **argv) { if (argc != 1) global_error = argc; // Tests stören // Tests erstellen und ablaufen lassen CppUnit::TextUi::TestRunner runner; CppUnit::TestFactory ®istry = CppUnit::TestFactoryRegistry::getRegistry(); runner.addTest(registry.makeTest()); return runner.run() ? 0 : 1; }