我最近使用Google Test for C++代码。当我阅读如何设置测试夹具时,我感到有点困惑。 Writing the main() Function会议展示了一个关于测试夹具类看起来像什么的例子。但是,当涉及到构造函数定义时,我们应该把它放在测试夹具类中吗?例如,就像谷歌测试文档给出下面的代码片段:C++ Google Test测试夹具的构造器定义
class FooTest : public ::testing::Test {
protected:
// You can remove any or all of the following functions if its body
// is empty.
FooTest() {
// You can do set-up work for each test here.
}
virtual ~FooTest() {
// You can do clean-up work that doesn't throw exceptions here.
}
}
我也看了在宏观TEST_F(test_fixture_name, test_name)
的定义,它似乎是与同一测试夹具相关联的每个测试,宏将创建一个测试夹具类的新子类。
鉴于上述事实,
如果构造的工作是沉重的,这是否意味着测试夹具的构造将让编译器扩展构造的大块的代码随处可见的隐含
inline
? (或者在同一个翻译单元中这没有关系?)在这种情况下,在测试夹具类之外定义构造函数是否更有意义?但是这样会使测试代码不易读,我不知道该怎么办。
有没有人可以给我一些建议呢?谢谢!