我有一个包含的方法static unsigned int
,因此它可以返回连续的目录名称。就像是:
string MyClass::createDirectory() const
{
static unsigned int i = 0;
stringstream ss;
string directory;
do
{
++i;
ss.str("");
ss << "/" << setfill('0') << setw(6) << i;
directory = m_rootDirectory + ss.str();
} while(!m_filesystem->createDirectory((directory)));
return directory;
}
我知道这是一个非常幼稚的解决方案,但到目前为止已经足够了。
但是我在编写单元测试时遇到了问题-在测试用例之间,静态变量增加了。
有没有办法重置这种变量?还是将静态方法变量更改为非静态类成员是我唯一的选择?
我正在使用Google Test框架。
您无法在声明其的函数范围之外重置静态局部变量。
我会尝试在MyClass::createDirectory
没有静态本地的情况下实现您的函数,即使它需要重新定义函数的签名甚至整个类的接口也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句