为什么在gtest中将shared_variable重置为nil

时间:2015-11-12 17:49:11

标签: c++ c googletest

这是我的代码,xmlDoc * d总是被重置为nil in" ExTest,try1"

ex_test.cpp

typedef const char* str;
class ExTest : public ::testing::Test {
protected:
    static str html;
    static xmlDoc *d;

    static void SetUpTestCase() {
        html = "<html></html>";
        xmlDoc *d = xmlParseDoc((const xmlChar *) html);
        d;//0x685a30
    }
};

str ExTest::html = NULL;
xmlDoc *ExTest::d = NULL;

TEST_F(ExTest, try1) {
    d; //nil
}

1 个答案:

答案 0 :(得分:1)

您有两个不同的变量,都称为d

static xmlDoc *d; <- here's one

static void SetUpTestCase() {
    html = "<html></html>";
    xmlDoc *d = ... <- here's the other

你可能意味着:

    d = xmlParseDoc((const xmlChar *) html);

这将设置现有d变量的值,而不是创建新变量。