Giter VIP home page Giter VIP logo

treinamento_cpp's Introduction

Wiselabs Software - treinamento_cpp

Treinamento básico de C++, Google Tests e HippoMocks

Setup

  • Faça fork do projeto.
  • Faça clone do projeto.
  • Instale o kcov (apt-get install kcov)
  • Instale o GCC, G++ e MAKE (apt-get install build-essential)

Compilando o projeto

  • Entre no diretório do projeto
  • Execute make clean; make

A saída será o executável dist/calculo.

Testando o projeto

  • Entre no diretório do projeto
  • Execute make clean; make test

A saída será o executável dist/unit_test.

Verificando a cobertura dos testes

  • Entre no diretório do projeto
  • Execute make clean; make kcov

A saída será o relatório em dist/coverage.

Sobre o exercício

Este projeto corresponde a um executável que realiza cálculos sequenciais. Ele já possui as implementações para listar os números Primos e a Sequência de Fibonacci. Nosso caso de uso é: O usuário entra no diretório do nosso aplicativo e executa ./calculo <NOME_DO_CALCULO>. Ex: ./calculo 0 10 fibonacci

Seu trabalho

  • Implemente um cálculo para a Sequência de Golomb;
  • Inicie pelo teste unitário, ou seja, este é um exercício de TDD;
  • Garanta 100% de cobertura dos testes unitários mesmo nas classes que não foi você que escreveu;
  • Garanta que o objeto "Interceptador" é chamado, e prove isto no teste unitário (utilizando HippoMocks).
  • Este software possui um BUG ao trabalhar com números muito grandes. Corrija-o.
  • Ao terminar seu trabalho, me envie um pull request para correção.

Importante sobre o HippoMocks

  • ExpectCall: Falsifica uma chamada e ESPERA que ela seja chamada e na ORDEM declarada. Caso ela não seja chamada ou não seja chamada na ordem, o teste falhará.
  • ExpectCallFunc: O mesmo que ExpectCall mas para funções estáticas.
  • OnCall: Falsifica uma chamada independente dela ser utilizada durante o ciclo de vida do teste.
  • OnCallFunc: O mesmo que OnCall mas para funções estáticas.

treinamento_cpp's People

Contributors

fcatho avatar fronald avatar dlpe avatar ercarvalho avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.