jia*_*ake 19 c++ testing googletest
我正在尝试了解Google测试夹具的工作原理.
说我有以下代码:
class PhraseTest : public ::testing::Test
{
protected:
virtual void SetUp()
{
phraseClass * myPhrase1 = new createPhrase("1234567890");
phraseClass * myPhrase2 = new createPhrase("1234567890");
}
virtual void TearDown()
{
delete *myPhrase1;
delete *myPhrase2;
}
};
TEST_F(PhraseTest, OperatorTest)
{
ASSERT_TRUE(*myPhrase1 == *myPhrase2);
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,为什么在TEST_F中声明"myPhrase1"和"myPhrase2"未声明?
Bil*_*eal 33
myPhrase1并且myPhrase2是设置方法的本地,而不是测试夹具.
你想要的是:
class PhraseTest : public ::testing::Test
{
protected:
phraseClass * myPhrase1;
phraseClass * myPhrase2;
virtual void SetUp()
{
myPhrase1 = new createPhrase("1234567890");
myPhrase2 = new createPhrase("1234567890");
}
virtual void TearDown()
{
delete myPhrase1;
delete myPhrase2;
}
};
TEST_F(PhraseTest, OperatorTest)
{
ASSERT_TRUE(*myPhrase1 == *myPhrase2);
}
Run Code Online (Sandbox Code Playgroud)