我有一组从单个基类派生的简单类:
class B {/*...*/};
class D1 : public B {/*...*/}
class D2 : public B {/*...*/}
我试图弄清楚如何编写Catch2测试,以便我可以提供派生类的实例,并在不重复测试代码的情况下测试其行为。
在我的 ad 测试中,我只编写了一个引用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);
}