SlideShare a Scribd company logo
1 of 13
A Slice of Cucumber
Zeb Mason
at #ShefTest
on 2016/11/07
There are many C++ test frameworks
Aeryn CATCH-VC6 CPUnit FCTX libunittest OAKUT Symbian OS Unit Unit++ xUnit++
API Sanity
Checker cfix Criterion Fructose
Typemock
Isolator++ Opmock TBrun unit.hpp tinytest
ATF Cput crpcut
Google C++
Mocking
Framework
Microsoft Unit
Testing
Framework for
C++
Parasoft
C/C++test Tessy UnitTest++ …
Bandit CPPOCL/test CUTE Google Test Mockator QtTest TDOG upp11
Boost Test Library CppTest cutee Hestia mock++/mockcppQuickCheck++ Test soon UquoniTest
BugEye cpptest-lite CxxTest Hippomocks mockitopp QuickTest Testwell CTA++ VectorCAST/C++
QA Systems
Cantata CppUnit Embunit Igloo mockpp SafetyNet tpunit++ Visual Assert
CATCH CppUTest Exercisix lest NanoCppUnit ShortCUT Trompeloeil WinUnit
doctest CppUnitLite FakeIt liblittletest NullUnit STRIDE TUT xTests
(Source WikiPedia)
There are many C++ test frameworks
(Source xkcd)
Choose one
• Microsoft::VisualStudio::CppUnitTestFramework
• The Visual Studio standard
• Test runner built into Visual Studio
• The lazy choice
Re-write tests in Gherkin
• That means use Cucumber-CPP?
Re-write tests in Gherkin
• That means use Cucumber-CPP?
• Which means install
• cmake 2.8.12 or later.
• Boost 1.40 or later.
• GTest 1.6 or later.
• GMock 1.6 or later.
• JSON Spirit
• Cucumber-Ruby
Re-write tests in Gherkin
• That means use Cucumber-CPP?
• Which means install
• cmake 2.8.12 or later.
• Boost 1.40 or later.
• GTest 1.6 or later.
• GMock 1.6 or later.
• JSON Spirit
• Cucumber-Ruby
OUCH!
Re-write tests in Gherkin
• That means use Cucumber-CPP?
• Or just write a Python script to produce stub code…
OOH!
Re-write tests in Gherkin
• That means use Cucumber-CPP?
• Or just write a Python script to produce stub code from…
Stub code
Stub code
Stub code
Further reading
• http://www.codeproject.com/Articles/1084071/A-Slice-of-Cucumber
• http://www.codeproject.com/Tips/1107751/Redirecting-std-clog-to-
Test-Framework-Output
• The Cucumber Book

More Related Content

Viewers also liked

Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)
Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)
Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)
DanielaDedita
 
Gestin social y_emprendedurismo8_pasos_fao_
Gestin social y_emprendedurismo8_pasos_fao_Gestin social y_emprendedurismo8_pasos_fao_
Gestin social y_emprendedurismo8_pasos_fao_
nenamaji
 

Viewers also liked (20)

Test automatizzati & serenity bdd
Test automatizzati & serenity bddTest automatizzati & serenity bdd
Test automatizzati & serenity bdd
 
Social Media explained by Henrik Meisel - Bravo Tours!
Social Media explained by Henrik Meisel - Bravo Tours!Social Media explained by Henrik Meisel - Bravo Tours!
Social Media explained by Henrik Meisel - Bravo Tours!
 
Design presentation #1
Design presentation #1Design presentation #1
Design presentation #1
 
Get the Chance of Earning More Revenue in your Travel Business with Ajura
Get the Chance of Earning More Revenue in your Travel Business with AjuraGet the Chance of Earning More Revenue in your Travel Business with Ajura
Get the Chance of Earning More Revenue in your Travel Business with Ajura
 
Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)
Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)
Proiect Engleza. An 2,grupa 8215 (Caraianu,Constantinescu,Dediță)
 
Marguisa Presentation
Marguisa PresentationMarguisa Presentation
Marguisa Presentation
 
AIT Global Inc
AIT Global Inc AIT Global Inc
AIT Global Inc
 
Antibiotic Resistance
Antibiotic ResistanceAntibiotic Resistance
Antibiotic Resistance
 
VolumeRendering
VolumeRenderingVolumeRendering
VolumeRendering
 
Presentation #2 (mvp1)
Presentation #2 (mvp1)Presentation #2 (mvp1)
Presentation #2 (mvp1)
 
Inside architecture
Inside architectureInside architecture
Inside architecture
 
Gestin social y_emprendedurismo8_pasos_fao_
Gestin social y_emprendedurismo8_pasos_fao_Gestin social y_emprendedurismo8_pasos_fao_
Gestin social y_emprendedurismo8_pasos_fao_
 
Resume
ResumeResume
Resume
 
xplace perakende teknolojileri
xplace perakende teknolojilerixplace perakende teknolojileri
xplace perakende teknolojileri
 
Content marketing 101
Content marketing 101Content marketing 101
Content marketing 101
 
Desarrollo sostenible presentacion escrito
Desarrollo sostenible presentacion escritoDesarrollo sostenible presentacion escrito
Desarrollo sostenible presentacion escrito
 
b_p_T_M_New
b_p_T_M_Newb_p_T_M_New
b_p_T_M_New
 
Workshop "Gli strumenti del web 2.0 nella didattica" - Prof. Francesco Lopez
Workshop "Gli strumenti del web 2.0 nella didattica" - Prof. Francesco LopezWorkshop "Gli strumenti del web 2.0 nella didattica" - Prof. Francesco Lopez
Workshop "Gli strumenti del web 2.0 nella didattica" - Prof. Francesco Lopez
 
Mi trabajo miguel angel
Mi trabajo miguel angelMi trabajo miguel angel
Mi trabajo miguel angel
 
Videojuegos primeras tres generaciones.
Videojuegos primeras tres generaciones.Videojuegos primeras tres generaciones.
Videojuegos primeras tres generaciones.
 

Similar to A slice of cucumber

Similar to A slice of cucumber (20)

C++ Coroutines
C++ CoroutinesC++ Coroutines
C++ Coroutines
 
Cfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymoreCfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymore
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
PVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CIPVS-Studio in the Clouds: Travis CI
PVS-Studio in the Clouds: Travis CI
 
Getting started with open cv in raspberry pi
Getting started with open cv in raspberry piGetting started with open cv in raspberry pi
Getting started with open cv in raspberry pi
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Continious integration pipeline
Continious integration pipelineContinious integration pipeline
Continious integration pipeline
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops Team
 
Docker to the Rescue of an Ops Team
Docker to the Rescue of an Ops TeamDocker to the Rescue of an Ops Team
Docker to the Rescue of an Ops Team
 
Travis CI: Fun and easy CI for your Plone packages
Travis CI: Fun and easy CI for your Plone packagesTravis CI: Fun and easy CI for your Plone packages
Travis CI: Fun and easy CI for your Plone packages
 
Cutting the Kubernetes Monorepo in pieces – never learnt more about git
Cutting the Kubernetes Monorepo in pieces – never learnt more about gitCutting the Kubernetes Monorepo in pieces – never learnt more about git
Cutting the Kubernetes Monorepo in pieces – never learnt more about git
 
How to Reuse OPNFV Testing Components in Telco Validation Chain
How to Reuse OPNFV Testing Components in Telco Validation ChainHow to Reuse OPNFV Testing Components in Telco Validation Chain
How to Reuse OPNFV Testing Components in Telco Validation Chain
 
Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008Google C++ Testing Framework in Visual Studio 2008
Google C++ Testing Framework in Visual Studio 2008
 
Test driving-qml
Test driving-qmlTest driving-qml
Test driving-qml
 
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
 
Python testing like a pro by Keith Yang
Python testing like a pro by Keith YangPython testing like a pro by Keith Yang
Python testing like a pro by Keith Yang
 
Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...
Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...
Nagios Conference 2011 - Nathan Vonnahme - Integrating Nagios With Test Drive...
 
Ant Unit Your Functional Test
Ant Unit Your Functional TestAnt Unit Your Functional Test
Ant Unit Your Functional Test
 
commit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS cluster
commit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS clustercommit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS cluster
commit => #GitHub => #CircleCI => #Docker => #Kubernetes #AWS cluster
 

Recently uploaded

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

A slice of cucumber

  • 1. A Slice of Cucumber Zeb Mason at #ShefTest on 2016/11/07
  • 2. There are many C++ test frameworks Aeryn CATCH-VC6 CPUnit FCTX libunittest OAKUT Symbian OS Unit Unit++ xUnit++ API Sanity Checker cfix Criterion Fructose Typemock Isolator++ Opmock TBrun unit.hpp tinytest ATF Cput crpcut Google C++ Mocking Framework Microsoft Unit Testing Framework for C++ Parasoft C/C++test Tessy UnitTest++ … Bandit CPPOCL/test CUTE Google Test Mockator QtTest TDOG upp11 Boost Test Library CppTest cutee Hestia mock++/mockcppQuickCheck++ Test soon UquoniTest BugEye cpptest-lite CxxTest Hippomocks mockitopp QuickTest Testwell CTA++ VectorCAST/C++ QA Systems Cantata CppUnit Embunit Igloo mockpp SafetyNet tpunit++ Visual Assert CATCH CppUTest Exercisix lest NanoCppUnit ShortCUT Trompeloeil WinUnit doctest CppUnitLite FakeIt liblittletest NullUnit STRIDE TUT xTests (Source WikiPedia)
  • 3. There are many C++ test frameworks (Source xkcd)
  • 4. Choose one • Microsoft::VisualStudio::CppUnitTestFramework • The Visual Studio standard • Test runner built into Visual Studio • The lazy choice
  • 5. Re-write tests in Gherkin • That means use Cucumber-CPP?
  • 6. Re-write tests in Gherkin • That means use Cucumber-CPP? • Which means install • cmake 2.8.12 or later. • Boost 1.40 or later. • GTest 1.6 or later. • GMock 1.6 or later. • JSON Spirit • Cucumber-Ruby
  • 7. Re-write tests in Gherkin • That means use Cucumber-CPP? • Which means install • cmake 2.8.12 or later. • Boost 1.40 or later. • GTest 1.6 or later. • GMock 1.6 or later. • JSON Spirit • Cucumber-Ruby OUCH!
  • 8. Re-write tests in Gherkin • That means use Cucumber-CPP? • Or just write a Python script to produce stub code… OOH!
  • 9. Re-write tests in Gherkin • That means use Cucumber-CPP? • Or just write a Python script to produce stub code from…
  • 13. Further reading • http://www.codeproject.com/Articles/1084071/A-Slice-of-Cucumber • http://www.codeproject.com/Tips/1107751/Redirecting-std-clog-to- Test-Framework-Output • The Cucumber Book