Я хотел бы узнать эффективный дизайн или реализацию для тестирования базовых классов.
Рассмотрим пример:
class Polygon;
class Rectangle : public Polygon;
class Triangle : public Polygon;
Где Rectangle
и Triangle
наследуются от Polygon
.
Я хотел бы, чтобы тестовые классы для Rectangle
и Triangle
использовали базовый тестовый класс:
class Test_Rectangle : public CppUnit::TestFixture;
class Test_Triangle : public CppUnit::TestFixture;
Но я не знаю, должен ли class Test_Polygon
наследовать от CppUnit::TestFixture
.
Мой нынешний план: class Test_Polygon; класс Test_Rectangle: общедоступный Test_Polygon, общедоступный CppUnit :: TestFixture; класс Test_Triangle: общедоступный Test_Polygon, общедоступный CppUnit :: TestFixture;
Проблема с вышеуказанным планом заключается в том, что Test_Polygon
не может использовать CPPUNIT_ASSERT
, и его методы не будут перечислены в реестре CPPUNIT.
Итак, какова рекомендуемая иерархия для тестирования базовых классов и потомков с помощью CPPUNIT?
(Я использую CPPUNIT 1.12 с Visual Studio 2008 в Windows Vista.)