Catch2:对派生类进行测试

时间:2019-03-17 03:51:14

标签: catch2

我有一组从单个基类派生的简单类:

class B {/*...*/};
class D1 : public B {/*...*/}
class D2 : public B {/*...*/}

我试图弄清楚如何编写Catch2测试,以便我可以提供派生类的实例,并在不重复测试代码的情况下测试其行为。

在我的 ad 测试中,我只编写了一个引用B的函数,并传递了D1D2的实例来行使它们:

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 个答案:

没有答案