Catch2-为不同的测试文件使用不同的模拟数据填充单例 我在CC++项目中使用CACH2进行单元测试。我有一个单例类,它被用于不同的测试文件中。例如,一个文件可能正在测试单例本身,另一个文件可能正在测试单例和另一个组件之间的交互。因此,我想知道是否有一种方法可以为每个测试文件用不同的模拟数据集填充singleton类
据我所知,我似乎有两种方法Catch2-为不同的测试文件使用不同的模拟数据填充单例 我在CC++项目中使用CACH2进行单元测试。我有一个单例类,它被用于不同的测试文件中。例如,一个文件可能正在测试单例本身,另一个文件可能正在测试单例和另一个组件之间的交互。因此,我想知道是否有一种方法可以为每个测试文件用不同的模拟数据集填充singleton类,c++,catch-unit-test,catch2,C++,Catch Unit Test,Catch2,据我所知,我似乎有两种方法 使用测试用例和部分 TestA.cpp TEST_CASE("A") { SingletonClass& sc = SingletonClass::getInstance(); sc.clear(); sc.add(data1); sc.add(data2); // ... more methods to populate singletonClass SECTION("Che
TEST_CASE("A") {
SingletonClass& sc = SingletonClass::getInstance();
sc.clear();
sc.add(data1);
sc.add(data2);
// ... more methods to populate singletonClass
SECTION("Check A1"){
// Perform test checks
}
SECTION("Check A2"){
// Perform test checks
}
}
TestB.cpp
TEST_CASE("B") {
SingletonClass& sc = SingletonClass::getInstance();
sc.clear();
sc.add(data3); // Different data from TestA.cpp
sc.add(data4);
// ... more methods to populate singletonClass
SECTION("Check B1"){
// Perform test checks
}
SECTION("Check B2"){
// Perform test checks
}
}
然而,这意味着安装函数将在每个测试文件中运行两次,这是不必要的,我希望避免这种情况。我也不想将所有测试都集中在一个部分/测试用例下
侦听器
侦听器
类,并覆盖testcasestinging
和testCaseEnded
方法,这似乎适用于所有测试用例,但我希望对TestA和TestB有不同的设置
因此,有没有更好的方法可以在每个测试文件中以不同的方式设置我的singleton类,从而类似于在每个测试文件的开始和结束时运行setup and teardown函数?您可能需要一个Fixture 夹具文件: