【发布时间】:2020-11-18 06:55:37
【问题描述】:
我的 C++ 有点生疏,尤其是 references。
我有一个旧代码,类似于
TEST(SomeTest,someFunction){
AClass anObject= GetSomeObject();
ASingletonClass &aReference= ASingletonClass::GetInstance();
//... some more code
}
由于设计的原因我不得不重写这段代码,这次我必须使用一个辅助类(*)
class ASingletonClassFixture: public testing:Test{
public:
void SetUp() override
{
anObject=GetSomeObject();
aReference= ASingletonClass::GetInstance();
}
protected:
AClass anObject;
ASingletonClass &aReference; //<--I don't think this is correct
}
我认为上面的代码是不正确的,因为引用应该在创建时初始化。
所以我的问题是我该如何做这样的事情?可以在构造函数中做吗?
(*) 如果你感兴趣——虽然不是必须知道——是因为我正在编写一个测试夹具。
【问题讨论】:
-
是的,如果您使用 initialiser list,您可以在构造函数中执行此操作。
-
@john 好的,谢谢。对于简单的值,我可以得到它,但我可以把单例
GetInstance也放在那里吗?怎么样?
标签: c++ unit-testing reference googletest