Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Projeto Soft...
Tela cheia Sugerir um artigo

AJ O. Alves: Instalando o GTest no Ubuntu, Framework de testes para C++

11 de Outubro de 2012, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 119 vezes
Hoje em dia não há como falar em desenvolvimento sem falar em TESTES, se você desenvolve com linguagens como Ruby, Python, Scala… você jã deve está familiarizado no assunto. Mas, que tal fazer um Coding Dojo em C++.
Desenvolvido pelo Google, conheça o Framework GTest, uma ferramenta para escrever testes para C++ em uma variedade de plataformas como (Linux, Mac OS X, Windows, Cygwin, Windows CE, e Symbian). Baseado na arquitetura xUnit. Suporta testes automáticos de descoberta, um rico conjunto de assertivas, assertivas baseadas na definição do usuário, controle de testes mortos, falha fatal e não fatal, testes parametrizados por tipo ou valor, varias opções de executar testes, e geração relatório do teste para XML.

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


Fonte: http://www.zerokol.com/2012/10/instalando-o-gtest-no-ubuntu-framework.html

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.