Din*_*ino 2 c++ static unit-testing static-members googletest
我有一个包含 a 的方法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;
}
Run Code Online (Sandbox Code Playgroud)
我知道这是非常幼稚的解决方案,但现在已经足够了。
但是我在编写单元测试时遇到了问题——静态变量在测试用例之间递增。
有没有办法重置这样的变量?还是将静态方法变量更改为非静态类成员是我唯一的选择?
我正在使用 Google 测试框架。
您无法将静态局部变量重置为声明它的函数的范围之外。
我会尝试在MyClass::createDirectory没有静态本地的情况下实现您的函数,即使它需要重新定义函数的签名甚至整个类的接口。
| 归档时间: |
|
| 查看次数: |
8403 次 |
| 最近记录: |