Dispositivos De Teste Do Google
Estou a tentar perceber como funcionam os equipamentos de Teste do Google.
Digamos que tenho o seguinte código:
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);
}
quando compilo, porque é que diz "myPhrase1" e "myPhrase2" não são declarados no TEST_F?
14
Author: Kristopher Johnson, 2010-08-23
2 answers
myPhrase1
e myPhrase2
são locais para o método de configuração, não para o dispositivo de ensaio.
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);
}
21
Author: Billy ONeal, 2017-02-22 21:08:48
myPhrase1
e myPhrase2
são declaradas como variáveis locais na função SetUp
. Você precisa declará-los como membros da classe:
class PhraseTest : public ::testing::Test
{
protected:
virtual void SetUp()
{
myPhrase1 = new createPhrase("1234567890");
myPhrase2 = new createPhrase("1234567890");
}
virtual void TearDown()
{
delete *myPhrase1;
delete *myPhrase2;
}
phraseClass* myPhrase1;
phraseClass* myPhrase2;
};
TEST_F(PhraseTest, OperatorTest)
{
ASSERT_TRUE(*myPhrase1 == *myPhrase2);
}
3
Author: Bill, 2010-08-23 16:37:03