Configure o Eclipse para TDD com C ++ e Google C ++ Testing

A primeira coisa a fazer é criar um novo projeto para teste. Eu tenho um projeto chamado MyProject e, em seguida, crio um novo projeto chamado MyProjectTesting.
Tenho todo o código-fonte em uma pasta chamada src .

Baixe o Google C ++ Testing Framework neste link: <a> http://code.google.com/p/googletest/downloads/detail?name=gtest-1.6.0.zip&can=2&q= </a>.
Crie uma pasta em seu projeto com o nome testing lib e, em seguida, extraia a estrutura do Google Testing com o seguinte comando (da pasta Google Test) :.
* / scripts / fuse
gtest files.py. <project-dir> / testing lib *

Agora a parte mais importante, crie uma pasta e nomeie-a importada_src . Enquanto estiver criando, selecione avançado e, em seguida, Link para local alternativo e selecione a pasta src em MeuProjeto, como nesta captura de tela.

Cenário.

Agora você tem um espelho para sua pasta src. Selecione o arquivo que contém o principal e clique com o botão direito. Selecione Excluir da construção e selecione todos os perfis de construção.

Agora precisamos dizer ao compilador como vincular a biblioteca de teste ao arquivo de origem. Em primeiro lugar, crie uma pasta em seu projeto e nomeie-a como teste ; em seguida, clique com o botão direito do mouse em test -> propriedades-> C / C ++ Build e, em seguida, adicione duas pastas em Includes -> Incude Path: a primeira é a pasta com a biblioteca de teste, que chamamos de testing_lib , e a outra id o original pasta do arquivo de origem, chamada import_src , como mostrado nesta imagem.

Cenário

Faça a mesma coisa com a pasta de teste , mas dessa vez vincule a pasta a ela mesma. Este é um passo importante, se você não fizer isso, o compilador reclamará.

Agora, na pasta de teste, adicione um arquivo chamado MainTest.cpp e cole o seguinte código:



inclui "gtest / gtest.h"


int main (int argc, char ** argv) {

:: testing :: InitGoogleTest (& argc, argv);


retornar EXECUTAR
TODOS OS TESTES ();

}


</pre>



Isso iniciará todos os testes (essas etapas não são necessárias porque a estrutura de teste tem uma opção de auto-main). Depois de escrever um primeiro caso de teste, vamos supor que eu tenha uma classe chamada Sin que implementa uma função sin simples. Agora eu escrevo um caso de teste simples usando as regras do GoogleTest e o lanço, o resultado é mostrado aqui:



Cenário



Você fez! Agora você pode escrever todos os casos de teste que desejar e o Google Test Framework executará todos os testes em seu código-fonte sem modificá-lo.