Então, veja como instalar esta incrível ferramenta no Ubuntu e começar a fazer seus testes.
1º Passo – É simples, basta instalar (no Terminal):
apt-get install libgtest-dev
Agora, um pequeno detalhe! Por razão de uma pequena regra da definição da linguagem C++ “Definição Única de Classes” o framework não é compilado na hora da instalação, então, você mesmo deve compilar.
2º Passo – Compilar e Localizar (no Terminal):
# Ir para a sua homecd ~# Compilar a bibliotecag++ -I /usr/include/gtest -I /usr/src/gtest/ -c /usr/src/gtest/src/gtest-all.cc# Arquivar o arquivo gerado como uma biblioteca estáticaar -rv libgtest.a gtest-all.o#Mover para um local onde o linker do GCC possa encontrarmv libgtest.a /usr/lib/
Ok, agora o framework está pronto para uso, veja este exemplo:
/*Definição da classe Pessoa: Pessoa.h*/#ifndef PESSOA_H#define PESSOA_H #include "string"using std::string; class Pessoa{ public: Pessoa(); void setNome(string nome); string getNome(); void setIdade(int idade); int getIdade(); private: string nome; int idade;};#endif
/*Implementação da classe Pessoa: Pessoa.cpp*/ #include "Pessoa.h" Pessoa::Pessoa(){}; void Pessoa::setNome(string nome){ this->nome = nome;} string Pessoa::getNome(){ return this->nome;} void Pessoa::setIdade(int idade){ this->idade = idade;} int Pessoa::getIdade(){ return this->idade;}
// Arquivo de testes: teste.cpp#include "Pessoa.h"#include "gtest/gtest.h"#include "string"using std::string; TEST(Pessoa, testarMetodosParaNome){ string nome = "AJ O. Alves"; Pessoa* pessoa = new Pessoa(); pessoa->setNome(nome); EXPECT_EQ(pessoa->getNome(), nome);} TEST(Pessoa, testarMetodosParaIdade){ int idade = 24; Pessoa* pessoa = new Pessoa(); pessoa->setIdade(idade); EXPECT_EQ(pessoa->getIdade(), idade);} int main(int argc, char* *argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS();}
Para rodar este teste é simples, há apenas duas considerações a serem feitas:
1º – Caso o linker não encontre o GTeste adicione “/usr/lib/libgtest.a” no comando
2º – Sempre adicione a opção “-lpthread” no comando
# Makefileall: gcc -c ./*.cpp g++ ./teste.cpp Pessoa.o /usr/lib/libgtest.a -o teste.bin -fPIC -O2 -g -Wall -lpthread clean: rm *.o rm ./teste.bin
A saída será:
Para se aprofundar mais, visite e guarde este link : Documentação
0sem comentários ainda