Catch2: сделать тест для производных классов
У меня есть простой набор классов, производных от одного базового класса:
class B {/*...*/};
class D1 : public B {/*...*/}
class D2 : public B {/*...*/}
Я пытаюсь выяснить, как написать тест Catch2, чтобы я мог предоставить экземпляры производных классов и проверить их поведение без дублирования тестового кода.
В моих специальных тестах я просто написал функцию со ссылкой на B
и прошли экземпляры D1
а также D2
для их осуществления:
void TestB(B &obj) {/* test B objects here... */}
void DoTests()
{
D1 d1;
D2 d2{"fred"};
TestB(d1);
TestB(d2);
}
Как мне сделать подобное с помощью Catch2?
Изменить: После еще одного исследования я обнаружил, что я могу сделать что-то вроде этого:
void TestB(B &obj)
{
REQUIRE(obj == "fred");
}
TEST_CASE("Test test")
{
D1 d1;
D2 d2{"fred"};
testB(d1);
testB(d2);
}