- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
对于 Google 测试,我想指定一个测试夹具以用于不同的测试用例。fixture 应分配和释放 TheClass
类的对象及其数据管理类TheClassData
,其中数据管理类需要数据文件的名称。
对于不同的测试,文件名应该不同。
我定义了以下 Fixture:
class TheClassTest : public ::testing::Test {
protected:
TheClassTest(std::string filename) : datafile(filename) {}
virtual ~TheClassTest() {}
virtual void SetUp() {
data = new TheClassData(datafile);
tc = new TheClass(data);
}
virtual void TearDown() {
delete tc;
delete data;
}
std::string datafile;
TheClassData* data;
TheClass* tc;
};
现在,不同的测试应该使用具有不同文件名的夹具。将其想象成设置测试环境。
问题:如何从测试中指定文件名,即如何调用夹具的非默认构造函数?
我发现了类似 ::testing::TestWithParam<T>
的东西和 TEST_P
,这没有用,因为我不想用不同的值运行一个测试,而是用一个夹具运行不同的测试。
最佳答案
根据另一位用户的建议,您无法实现您想要的通过使用非默认构造函数实例化夹具。然而,还有其他方法。只需重载 SetUp
函数,然后在测试中显式调用该版本:
class TheClassTest : public ::testing::Test {
protected:
TheClassTest() {}
virtual ~TheClassTest() {}
void SetUp(const std::string &filename) {
data = new TheClassData(filename);
tc = new TheClass(data);
}
virtual void TearDown() {
delete tc;
delete data;
}
TheClassData* data;
TheClass* tc;
};
现在在测试中简单地使用这个重载来设置文件名:
TEST_F(TheClassTest, MyTestCaseName)
{
SetUp("my_filename_for_this_test_case");
...
}
无参数的TearDown
会自动清理测试完成。
关于c++ - 为 Google 测试夹具指定构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207346/
是否可以设置一个夹具来创建数据库 View 而不是 CakePHP 中的数据库表?在创建表的夹具和另一个应该是数据库 View 的夹具中使用相同的数据似乎效率低下。 最佳答案 我设法这样做,其中 vi
与这个锦标赛赛程算法作斗争。 代码运行良好,但我需要帮助将数据插入 mysql我似乎无法访问 $varables.. 非常感谢 php 专家的任何调整 ... $teamnames = "Arsena
我正在尝试开始使用 Symfony2,并一直在尝试为我的应用程序的模型层设置自动化测试。 Symfony2 书讨论了 Controller 的单元测试,但我找不到很多模型测试的示例。 我希望在每次测试
我想为我的测试使用一个通用的夹具: @RunWith(JUnitPlatform::class) abstract class BaseSpek: Spek({ beforeGroup {pr
使用这个固定装置,我想根据 before 固定装置 Hook 中 API 调用的结果设置 checkoutId,这样我就可以用它来设置页面我的测试 let checkoutId; fixture`Ch
我尝试过各种尝试。这是我最新的。我只是想 stub Axios 请求并返回固定装置。 const { expect } = require('chai'); const sinon = require
我是一名优秀的程序员,十分优秀!