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);

}

0 ответов

Другие вопросы по тегам