Google测试和静态局部变量

迪诺

我有一个包含的方法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框架。

安东尼奥·佩雷斯(Antonio Perez)

您无法在声明其的函数范围之外重置静态局部变量。

我会尝试在MyClass::createDirectory没有静态本地的情况下实现您的函数,即使它需要重新定义函数的签名甚至整个类的接口也是如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

收益率和静态局部变量的比较

来自分类Dev

关于静态局部变量的澄清

来自分类Java

静态类中的重复局部变量

来自分类Dev

内联模板功能的静态局部变量

来自分类Dev

Go中的静态局部变量

来自分类Dev

C ++ 11中的静态局部变量?

来自分类Dev

静态局部变量的线程安全增量

来自分类Dev

Python局部变量是静态确定的吗?

来自分类Dev

静态局部变量和自动

来自分类Dev

静态局部变量中的竞争条件

来自分类Dev

静态内部类中的局部变量

来自分类Dev

为什么JVM为什么将堆用于对象和静态变量,将堆栈用于局部变量和函数调用?

来自分类Java

静态方法中的局部变量是否也是静态的?

来自分类Java

Java静态变量和局部变量

来自分类Dev

Scilab 函数中静态局部变量的等价物

来自分类Dev

函数的静态局部变量对象在哪里定义?

来自分类Dev

Java-静态方法中的局部变量

来自分类Dev

从函数返回指向局部变量的静态指针

来自分类Java

如何在Java中创建静态局部变量?

来自分类Java

静态方法和线程安全中的局部变量

来自分类Dev

静态局部变量被重新初始化

来自分类Dev

声明为静态的局部变量需要多少空间?

来自分类Dev

涉及静态局部变量的递归函数中的意外输出

来自分类Dev

静态局部变量不占用物理内存

来自分类Dev

无状态Lambda作为静态局部变量

来自分类Dev

CppUnit:为什么静态局部变量保持其值?

来自分类Dev

Rspec测试中未定义的局部变量或方法?

来自分类Dev

Moq单元测试访问局部变量

来自分类Java

同步局部变量