O documento discute o uso de frameworks de teste unitário GTest e Catch no C++, comparando suas funcionalidades, instalação e construção. É apresentada uma motivação para testes unitários e exemplos de código para ambos frameworks, destacando-se que GTest fornece recursos adicionais como geração de relatórios XML enquanto Catch é header-only.
Padrões de deploy para DevOps e Entrega ContínuaDanilo Sato
O documento apresenta padrões e princípios para deploy e entrega contínua de software, incluindo a utilização de pipelines de entrega, deploy incremental e mudança paralela para reduzir riscos, e técnicas como implantação azul-verde, canário e feature toggles.
Padrões de deploy para devops e entrega contínua - DevDay 2014Danilo Sato
O documento discute padrões para deploy de DevOps e entrega contínua, incluindo pipeline de entrega, implantação azul-verde, implantação canário, feature toggles e dark launching. O objetivo é tornar o deploy um "não-evento" através da automação e entrega incremental de mudanças pequenas e de baixo risco.
O documento apresenta 4 frameworks para testes unitários em C/C++: Check, MinUnit, GoogleTest e Cgreen. Cada um é descrito brevemente com suas principais características e como escrever testes usando macros.
Fazendo Injeção de dependência com Unity 1.2Giovanni Bassi
O documento discute injeção de dependência com o framework Unity. Ele explica os princípios da inversão de dependência e como Unity permite diferentes tipos de injeção como constructor, property e method call injection. Também mostra como configurar dependências no Unity e realizar testes utilizando mocks.
Obrigado pela apresentação! Foi muito esclarecedora sobre a importância dos testes no frontend e as ferramentas disponíveis para isso, como Jest, Enzyme e outros. Achei interessante como você destacou os diferentes níveis de renderização com Enzyme (shallow, mount e render) e como cada um atende a necessidades específicas. Vou certamente aplicar esses conceitos nos meus projetos daqui pra frente.
Dojo de programação - Dia de Java - UFSCarLuiz Ribeiro
O documento discute os princípios do Manifesto Ágil, como programação em pares, testes unitários e test-driven development (TDD). Também apresenta o conceito de Coding Dojo, que reúne programadores para resolver desafios de programação de forma colaborativa e não competitiva, com o objetivo de aprendizado.
Qualidade no desenvolvimento de software com PHPUnitDiego Tremper
O documento discute testes de unidade no PHP usando o framework PHPUnit. Aborda tópicos como: introdução ao PHPUnit; como escrever e executar testes unitários; utilização de asserções e provedores de dados; verificação de exceções.
Padrões de deploy para DevOps e Entrega ContínuaDanilo Sato
O documento apresenta padrões e princípios para deploy e entrega contínua de software, incluindo a utilização de pipelines de entrega, deploy incremental e mudança paralela para reduzir riscos, e técnicas como implantação azul-verde, canário e feature toggles.
Padrões de deploy para devops e entrega contínua - DevDay 2014Danilo Sato
O documento discute padrões para deploy de DevOps e entrega contínua, incluindo pipeline de entrega, implantação azul-verde, implantação canário, feature toggles e dark launching. O objetivo é tornar o deploy um "não-evento" através da automação e entrega incremental de mudanças pequenas e de baixo risco.
O documento apresenta 4 frameworks para testes unitários em C/C++: Check, MinUnit, GoogleTest e Cgreen. Cada um é descrito brevemente com suas principais características e como escrever testes usando macros.
Fazendo Injeção de dependência com Unity 1.2Giovanni Bassi
O documento discute injeção de dependência com o framework Unity. Ele explica os princípios da inversão de dependência e como Unity permite diferentes tipos de injeção como constructor, property e method call injection. Também mostra como configurar dependências no Unity e realizar testes utilizando mocks.
Obrigado pela apresentação! Foi muito esclarecedora sobre a importância dos testes no frontend e as ferramentas disponíveis para isso, como Jest, Enzyme e outros. Achei interessante como você destacou os diferentes níveis de renderização com Enzyme (shallow, mount e render) e como cada um atende a necessidades específicas. Vou certamente aplicar esses conceitos nos meus projetos daqui pra frente.
Dojo de programação - Dia de Java - UFSCarLuiz Ribeiro
O documento discute os princípios do Manifesto Ágil, como programação em pares, testes unitários e test-driven development (TDD). Também apresenta o conceito de Coding Dojo, que reúne programadores para resolver desafios de programação de forma colaborativa e não competitiva, com o objetivo de aprendizado.
Qualidade no desenvolvimento de software com PHPUnitDiego Tremper
O documento discute testes de unidade no PHP usando o framework PHPUnit. Aborda tópicos como: introdução ao PHPUnit; como escrever e executar testes unitários; utilização de asserções e provedores de dados; verificação de exceções.
O documento descreve a ferramenta JUnitPerf, que permite adicionar testes de desempenho a testes JUnit existentes de maneira não intrusiva. JUnitPerf fornece classes como TimedTest para medir o tempo de execução de testes e LoadTest para simular cargas de usuários e testar a escalabilidade. Os testes de desempenho do JUnitPerf podem identificar gargalos no código e garantir que as métricas de tempo e carga permaneçam dentro dos limites estabelecidos.
Um workshop que eu e Dherik Barison fizemos para levantar alguns pontos sobre como escrever bons testes, também levantamos alguns argumentos sobre o que existe no mundo de sotfware quando o tema é Testes, um workshop para trazer discussões das pessoas que o assistiram, para que conseguíssemos articular os assuntos de uma forma aberta, trazendo muitas vezes mais questionamentos do que respostas para os participantes
=D
O documento discute o framework JUnit para testes unitários em Java. Ele começa explicando sobre testes unitários e introduzindo o JUnit, incluindo suas vantagens. Depois, descreve a arquitetura do JUnit, sua API e boas práticas para escrever testes com JUnit, ilustrando com exemplos de uso. Finalmente, explica como criar e executar testes no Eclipse.
Apresentação feita por mim sobre testes automatizados no ambiente ArcGIS.
Um projeto que dá suporte com o desenvolvimento de testes integrados está disponível também em: https://www.box.com/s/792eb7eba4b34a35b901
O documento apresenta uma introdução ao framework JUnit para testes automatizados em Java. Ele discute por que usar JUnit, quando escrever testes, como escrever testes utilizando asserções, fixtures e testando exceções, e como rodar testes usando a interface gráfica ou linha de comando no Eclipse.
Aqui são apresentados as técnicas do framework JUnit
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento resume técnicas de refactoring de código, apresentando um exemplo de extração de método onde fragmentos de código são agrupados em métodos com nomes explicativos para tornar a lógica mais clara.
O que você precisa saber sobre testes unitáriosFilipe M. Silva
O documento discute testes unitários em ambientes ágeis, abordando TDD, testes unitários, isolamento, spies, stubs e mocks. Apresenta boas práticas como organizar testes em descrições e iterações claras, e más práticas como testes integrados e dependência entre testes.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute testes no Android, abordando conceitos como mocks, frameworks de teste, organização de testes e como testar dependências externas. Ele também fornece dicas sobre por onde começar a escrever testes e como garantir uma execução tranquila.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute conceitos e práticas de testes no Android, incluindo: 1) razões para escrever testes como garantir funcionamento e documentar comportamento; 2) tipos de testes como unitários e de interface do usuário; 3) ferramentas para testes como JUnit, Espresso e Mockito.
Este documento apresenta um curso sobre testes automatizados, abordando testes unitários, de integração e funcionais. A unidade III discute testes de integração com ênfase em TestNG, Mockito, testes com banco de dados usando DBUnit e Seam.
Como usar a biblioteca SimpleTest do PHP para ganhar tempo resolvendo os problemas mas simples do dia-a-dia. Essa apresentação foi elaborada para o PHPConference2008 que aconteceu em Osasco, SP Brasil.
Maplink - Proposta Processos de Teste_v3.pptSergio Rubio
O documento apresenta uma proposta de metodologia de testes para implementação no processo de desenvolvimento de uma empresa. A proposta inclui atividades como a criação de um backlog de testes, planejamento dos testes, execução dos testes e geração de relatórios para acompanhamento.
Este documento discute conceitos de programação orientada a objetos em Javascript para desenvolvedores acostumados com C#. Ele explica como Javascript lida com objetos dinâmicos, "classes", herança e outros conceitos usando o objeto prototype. O documento também mostra como simular classes abstratas e métodos de extensão usando prototype.
O documento apresenta as principais características da Plataforma de compiladores .NET ("Roslyn"), C# 6 e Visual Studio "14": 1) O projeto "Roslyn" é a nova implementação dos compiladores C# e Visual Basic feita em C# e Visual Basic com APIs públicas; 2) C# 6 introduz novos recursos como construtores primários, propriedades automáticas e expressões nameof; 3) Visual Studio "14" integra o "Roslyn" e traz melhorias na depuração e refatoração.
Desenvolvimento Dirigido por Testes com JunitAdolfo Neto
O objetivo desta palestra é apresentar como funciona o desenvolvimento dirigido por testes (TDD, do termo em inglês "test-driven development"), uma técnica de projeto de software utilizada principalmente em métodos ágeis para o desenvolvimento de software. Além disso, serão mostrados exemplos práticos de como desenvolver sofwtare utilizando TDD com o auxílio do framework open source JUnit (http://junit.sourceforge.net/).
O documento apresenta as principais novidades da especificação EcmaScript 6 (ES6). Em 3 frases: Apresenta novos recursos como valores padrão para parâmetros, blocos let e const, funções arrow, operador spread, compreensão de arrays, classes, módulos, destructuring e promises. Explica que grande parte dos recursos já está disponível em versões preliminares de navegadores e Node.js, mas a versão final é esperada para o primeiro semestre de 2016.
Este documento fornece uma introdução aos testes de unidade com a ferramenta JUnit em Java. Ele discute os objetivos e benefícios dos testes de unidade, apresenta os conceitos fundamentais do JUnit e fornece exemplos de como implementar testes com JUnit.
Este documento fornece uma introdução aos testes de unidade com a ferramenta JUnit em Java. Ele discute os objetivos e benefícios dos testes de unidade, apresenta os conceitos fundamentais do JUnit e fornece exemplos de como implementar testes com JUnit.
Gitlab - Creating C++ applications with Gitlab CIUilian Ries
Gitlab is a complete tool that integrates everything from project management to product construction. In this talk I will present how a C ++ project can be analyzed, built, tested and deployed using Gitlab.
Conan.io - The C/C++ package manager for DevelopersUilian Ries
Conan is a decentralized package manager for C and C++ that handles both source code and pre-compiled binaries. It addresses issues with building dependencies from source by allowing developers to define packages through recipes that specify dependencies and build instructions. Conan packages are cached locally and identified by name, version, and user/channel to allow isolation of builds. The Conan community contributes package recipes through open source projects on GitHub like the Conan Center and Bincrafters organization.
O documento descreve a ferramenta JUnitPerf, que permite adicionar testes de desempenho a testes JUnit existentes de maneira não intrusiva. JUnitPerf fornece classes como TimedTest para medir o tempo de execução de testes e LoadTest para simular cargas de usuários e testar a escalabilidade. Os testes de desempenho do JUnitPerf podem identificar gargalos no código e garantir que as métricas de tempo e carga permaneçam dentro dos limites estabelecidos.
Um workshop que eu e Dherik Barison fizemos para levantar alguns pontos sobre como escrever bons testes, também levantamos alguns argumentos sobre o que existe no mundo de sotfware quando o tema é Testes, um workshop para trazer discussões das pessoas que o assistiram, para que conseguíssemos articular os assuntos de uma forma aberta, trazendo muitas vezes mais questionamentos do que respostas para os participantes
=D
O documento discute o framework JUnit para testes unitários em Java. Ele começa explicando sobre testes unitários e introduzindo o JUnit, incluindo suas vantagens. Depois, descreve a arquitetura do JUnit, sua API e boas práticas para escrever testes com JUnit, ilustrando com exemplos de uso. Finalmente, explica como criar e executar testes no Eclipse.
Apresentação feita por mim sobre testes automatizados no ambiente ArcGIS.
Um projeto que dá suporte com o desenvolvimento de testes integrados está disponível também em: https://www.box.com/s/792eb7eba4b34a35b901
O documento apresenta uma introdução ao framework JUnit para testes automatizados em Java. Ele discute por que usar JUnit, quando escrever testes, como escrever testes utilizando asserções, fixtures e testando exceções, e como rodar testes usando a interface gráfica ou linha de comando no Eclipse.
Aqui são apresentados as técnicas do framework JUnit
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
O documento resume técnicas de refactoring de código, apresentando um exemplo de extração de método onde fragmentos de código são agrupados em métodos com nomes explicativos para tornar a lógica mais clara.
O que você precisa saber sobre testes unitáriosFilipe M. Silva
O documento discute testes unitários em ambientes ágeis, abordando TDD, testes unitários, isolamento, spies, stubs e mocks. Apresenta boas práticas como organizar testes em descrições e iterações claras, e más práticas como testes integrados e dependência entre testes.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute testes no Android, abordando conceitos como mocks, frameworks de teste, organização de testes e como testar dependências externas. Ele também fornece dicas sobre por onde começar a escrever testes e como garantir uma execução tranquila.
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
O documento discute conceitos e práticas de testes no Android, incluindo: 1) razões para escrever testes como garantir funcionamento e documentar comportamento; 2) tipos de testes como unitários e de interface do usuário; 3) ferramentas para testes como JUnit, Espresso e Mockito.
Este documento apresenta um curso sobre testes automatizados, abordando testes unitários, de integração e funcionais. A unidade III discute testes de integração com ênfase em TestNG, Mockito, testes com banco de dados usando DBUnit e Seam.
Como usar a biblioteca SimpleTest do PHP para ganhar tempo resolvendo os problemas mas simples do dia-a-dia. Essa apresentação foi elaborada para o PHPConference2008 que aconteceu em Osasco, SP Brasil.
Maplink - Proposta Processos de Teste_v3.pptSergio Rubio
O documento apresenta uma proposta de metodologia de testes para implementação no processo de desenvolvimento de uma empresa. A proposta inclui atividades como a criação de um backlog de testes, planejamento dos testes, execução dos testes e geração de relatórios para acompanhamento.
Este documento discute conceitos de programação orientada a objetos em Javascript para desenvolvedores acostumados com C#. Ele explica como Javascript lida com objetos dinâmicos, "classes", herança e outros conceitos usando o objeto prototype. O documento também mostra como simular classes abstratas e métodos de extensão usando prototype.
O documento apresenta as principais características da Plataforma de compiladores .NET ("Roslyn"), C# 6 e Visual Studio "14": 1) O projeto "Roslyn" é a nova implementação dos compiladores C# e Visual Basic feita em C# e Visual Basic com APIs públicas; 2) C# 6 introduz novos recursos como construtores primários, propriedades automáticas e expressões nameof; 3) Visual Studio "14" integra o "Roslyn" e traz melhorias na depuração e refatoração.
Desenvolvimento Dirigido por Testes com JunitAdolfo Neto
O objetivo desta palestra é apresentar como funciona o desenvolvimento dirigido por testes (TDD, do termo em inglês "test-driven development"), uma técnica de projeto de software utilizada principalmente em métodos ágeis para o desenvolvimento de software. Além disso, serão mostrados exemplos práticos de como desenvolver sofwtare utilizando TDD com o auxílio do framework open source JUnit (http://junit.sourceforge.net/).
O documento apresenta as principais novidades da especificação EcmaScript 6 (ES6). Em 3 frases: Apresenta novos recursos como valores padrão para parâmetros, blocos let e const, funções arrow, operador spread, compreensão de arrays, classes, módulos, destructuring e promises. Explica que grande parte dos recursos já está disponível em versões preliminares de navegadores e Node.js, mas a versão final é esperada para o primeiro semestre de 2016.
Este documento fornece uma introdução aos testes de unidade com a ferramenta JUnit em Java. Ele discute os objetivos e benefícios dos testes de unidade, apresenta os conceitos fundamentais do JUnit e fornece exemplos de como implementar testes com JUnit.
Este documento fornece uma introdução aos testes de unidade com a ferramenta JUnit em Java. Ele discute os objetivos e benefícios dos testes de unidade, apresenta os conceitos fundamentais do JUnit e fornece exemplos de como implementar testes com JUnit.
Semelhante a Testes Unitários com GTest e Catch (20)
Gitlab - Creating C++ applications with Gitlab CIUilian Ries
Gitlab is a complete tool that integrates everything from project management to product construction. In this talk I will present how a C ++ project can be analyzed, built, tested and deployed using Gitlab.
Conan.io - The C/C++ package manager for DevelopersUilian Ries
Conan is a decentralized package manager for C and C++ that handles both source code and pre-compiled binaries. It addresses issues with building dependencies from source by allowing developers to define packages through recipes that specify dependencies and build instructions. Conan packages are cached locally and identified by name, version, and user/channel to allow isolation of builds. The Conan community contributes package recipes through open source projects on GitHub like the Conan Center and Bincrafters organization.
O documento discute diferentes fluxos de trabalho no Git como Gitflow, Github Flow e Gitlab Flow. Ele também fornece boas práticas como fazer commits pequenos e frequentes, usar branches, testar antes de commitar e escrever boas mensagens de commit. O documento recomenda adotar um fluxo de trabalho consistente e usar o controle de versão para compartilhamento de código, não como sistema de backup.
O documento apresenta os conceitos e práticas do Behavior Driven Development (BDD). O BDD enfatiza a colaboração entre times de negócios, desenvolvimento e teste para definir exemplos de comportamento do software. O BDD utiliza linguagens como Gherkin e ferramentas como Cucumber para documentar e automatizar casos de teste de aceitação com foco no valor para o negócio. O documento também discute desafios e benefícios da abordagem BDD.
This document summarizes a presentation about the Conan package manager for C and C++ applications. It discusses popular C++ libraries that are commonly needed like Boost and Poco. It shows how Conan can be used to add these libraries as dependencies to a project without needing to build them manually. The document provides an example of using Conan to add Boost and Poco to a demo application that calculates an MD5 hash and validates an email address. It also gives an overview of how Conan works, including its package naming scheme, local caching of packages, and community around sharing packages on Bintray.
O documento discute as bibliotecas POCO C++. A POCO é uma coleção de bibliotecas C++ portáteis focadas em redes e aplicações. Ela fornece funcionalidades como cache, processos, sistema de arquivos, aplicações, rede, notificações e manipulação de strings. A POCO é uma alternativa à biblioteca Boost e possui vantagens como ser mais compreensível e fornecer suporte a pontos não cobertos pela Boost, como SQLite e monitoramento de diretórios.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
This document discusses various software development tools for C/C++ projects including source control tools like Git and SVN, build tools for C++, frameworks for C/C++, code review of source code, unit testing and behavior driven development (BDD) testing, static and runtime code analysis, documentation tools, continuous integration for building and deploying, local and remote development environments, and solutions for local development, remote servers, continuous integration, and a datacom case study.
C++11 introduced many new features including type deduction with auto, uniform initialization syntax, rvalue references and move semantics, improved enums, lambda expressions, and smart pointers. Type deduction with auto lets the compiler deduce the type of a variable based on its initializer. Uniform initialization uses curly braces {} and allows narrowing conversions only if explicitly cast. Rvalue references and move semantics allow moving an object to avoid expensive copies by leaving the source object in a valid but unspecified state.
O documento propõe desenvolver um sistema IoT para gerenciar sensores ambientais em um aquário ornamental e compartilhar dados online. O objetivo é automatizar tarefas de tratamento e apresentar estatísticas. A metodologia usará MQTT. O cronograma inclui definição do tema, levantamento bibliográfico, projeto do sistema embarcado, integração com IoT e apresentação final.
2. ● Motivação
● Por que usar teste unitário?
● Projetos
● Gtest
○ Sobre o projeto
○ Formas de instalar
○ Exemplo
○ Prós e Contras
● Catch
○ Sobre o projeto
○ Formas de instalar
○ Exemplo
○ Prós e Contras
● Comparativo GTest x Catch
● Uso na Khomp ?
● Referências
AGENDA
3. ● Falta de testes unitários nos projetos da Khomp
● Experiências e resultados positivos em projetos anteriores
● Aderência da comunidade aos projetos GTest e Catch
● “Test Your Software, or Your Users Will”, The Pragmatic Programmer
MOTIVAÇÃO
4. ● Clarifica a cobertura de código
○ Unit Test + Code Coverage
● Valida a compreensão sobre o código
○ Testes podem servir como exemplo
○ Quem escreve o teste precisa compreender a API
○ Descrição das features testadas
● Ratifica novas modificações
○ Teste de regressão
○ Previne build quebrado em produção
POR QUE USAR TESTE UNITÁRIO?
5. PROJETOS PARA C++
● CppUnit
● Boost Test
● Google Test
● Aeryn
● Cute
● Fructose
● Catch
Lista com projetos para C++
6. Google Test - Google C++ Test Framework
● https://github.com/google/googletest
● Licença BSD-3
● ~55 Contribuidores
● ~406 issues
● ~178 Pull Requests
● Multiplataforma
● Utilizado pelos projetos LLVM, OpenCV, Protobuf
● Integração nativa com CMake >=3.1
● Geração de relatório XML (integração Jenkins)
15. Google Test
Formas de construir
MANUAL
$ gcc test.cpp -lpthread -lgtest -lgtest_main
● Pthread é dependencia do GTest
● gtest_main fornece a função main()
16. Google Test
Formas de construir
CMAKE >=3.0.2
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(foo foo.cpp)
target_link_libraries(foo ${GTEST_BOTH_LIBRARIES})
17. Google Test
Formas de construir
CMAKE >=3.0.2
enable_testing()
add_executable(Foo foo.cpp)
add_test(test-foo foo)
OU
GTEST_ADD_TESTS(foo foo.cpp)
18. Google Test
Formas de construir
CONAN
# conanfile.txt
[requires]
gtest/1.8.0@lasote/stable
[generators]
cmake
# CMakeLists.txt
add_executable(foo foo.cpp)
target_link_libraries(foo ${CONAN_LIBS})
19. Google Test
Formas de construir
OUTPUT - ASCIINEMA
Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from TestingEncryption
[ RUN ] TestingEncryption.cipher
[ OK ] TestingEncryption.cipher (2 ms)
[----------] 1 test from TestingEncryption (2 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (2 ms total)
[ PASSED ] 1 test.
21. Google Test
Formas de construir
● Prós
○ Gama de plugins (jenkins, clion, CDT, cmake)
○ Saída XML (jenkins)
○ Google Mock
○ Gamma de assert (ASSERT_…)
○ Portabilidade
○ Boa opção para TDD
● Contras
○ Valgrind falso-positivos
22. Catch - C++ Automated Test Cases in Headers
● https://github.com/philsquared/Catch
● Licença BSL-1.0
● ~89 Contribuidores
● ~108 Issues
● ~20 Pull Requests
● Header only
● Utilizado pelos projetos Trompeloeil, ChaiScript
● Integração nativa com CLion
● Uso em TDD e BDD
32. Google Test
Formas de construir
MANUAL
$ gcc test.cpp
● CATCH_CONFIG_MAIN deve ser declarado somente uma vez
33. Google Test
Formas de construir
CONAN
# conanfile.txt
[requires]
Catch/1.9.5@uilianries/stable
[generators]
cmake
# CMakeLists.txt
enable_testing()
add_executable(foo foo.cpp)
add_test(test-foo foo)
34. Google Test
Formas de construir
OUTPUT - ASCIINEMA
------------------------------------------------------------------------------
Scenario: vectors can be sized and resized
Given: A vector with some items
When: the size is increased
Then: the size and capacity change
...............................................................................
PASSED:
REQUIRE( v.size() == 10 )
with expansion:
10 == 10
36. Google Test
Formas de construir
● Prós
○ Gama de plugins (Jenkins, CLion, CMake)
○ Saída JUnit (Jenkins)
○ Gamma de assert (ASSERT_…)
○ Decomposição de expressão
○ Boa opção para TDD e BDD
● Contras
○ Não possui Mock
○ Incremento de tempo durante build (~3 seg)
38. GTEST
● Largamente utilizada
● Multíplos tipos de assert
● Compila até no GCC-4.1
● Gera report XML
CATCH
● Header Only
● TDD e BDD
● Gera report JUnit
● Compila até no GCC-4.1
39. REFERÊNCIAS
● Exploring the C++ Unit Testing Framework Jungle
● A quick introduction to the Google C++ Testing Framework
● Test your project with Google Test
● Testing C++ With A New Catch
● CppCon 2015: Phil Nash “Test Driven C++ with Catch”