SlideShare a Scribd company logo
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

Test automatizzati & serenity bdd
Test automatizzati & serenity bddTest automatizzati & serenity bdd
Test automatizzati & serenity bdd
diego mauricio lagos morales
 
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!
Henrik Meisel
 
Design presentation #1
Design presentation #1Design presentation #1
Design presentation #1
Paramveer Singh
 
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
Manika Negi
 
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
 
Marguisa Presentation
Marguisa PresentationMarguisa Presentation
Marguisa Presentation
Diego Castillo Gutierrez
 
AIT Global Inc
AIT Global Inc AIT Global Inc
AIT Global Inc
Jiten Israni
 
Antibiotic Resistance
Antibiotic ResistanceAntibiotic Resistance
Antibiotic Resistance
NIJEESH CH
 
Presentation #2 (mvp1)
Presentation #2 (mvp1)Presentation #2 (mvp1)
Presentation #2 (mvp1)
Paramveer Singh
 
Inside architecture
Inside architectureInside architecture
Inside architecture
Zeb Mason
 
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
 
Resume
ResumeResume
Resume
Bryan Brown
 
xplace perakende teknolojileri
xplace perakende teknolojilerixplace perakende teknolojileri
xplace perakende teknolojileri
Aydin Ozyurt
 
Content marketing 101
Content marketing 101Content marketing 101
Content marketing 101
James Perry
 
Desarrollo sostenible presentacion escrito
Desarrollo sostenible presentacion escritoDesarrollo sostenible presentacion escrito
Desarrollo sostenible presentacion escrito
Iván Navarro Siguero
 
b_p_T_M_New
b_p_T_M_Newb_p_T_M_New
b_p_T_M_New
Brijesh Patel
 
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
IIS PAOLO FRISI MILANO MIM
 
Mi trabajo miguel angel
Mi trabajo miguel angelMi trabajo miguel angel
Mi trabajo miguel angel
miguel angel Dejesus maduro
 
Videojuegos primeras tres generaciones.
Videojuegos primeras tres generaciones.Videojuegos primeras tres generaciones.
Videojuegos primeras tres generaciones.
I.E.S Virgen del Remedio
 

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

C++ Coroutines
C++ CoroutinesC++ Coroutines
C++ Coroutines
Sumant Tambe
 
Cfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymoreCfgmgmt Challenges aren't technical anymore
Cfgmgmt Challenges aren't technical anymore
Julien Pivotto
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
Dalton Valadares
 
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
Andrey Karpov
 
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
Jayaprakash Nagaruru
 
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
Amazon Web Services
 
Continious integration pipeline
Continious integration pipelineContinious integration pipeline
Continious integration pipeline
GomathiNayagam S
 
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, Inc.
 
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
Rachid Zarouali
 
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
Nejc Zupan
 
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
Stefan Schimanski
 
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
OPNFV
 
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
Andrea Francia
 
Test driving-qml
Test driving-qmlTest driving-qml
Test driving-qml
Artem Marchenko
 
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
Amazon Web Services
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
John Congdon
 
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
PYCON MY PLT
 
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...
Nagios
 
Ant Unit Your Functional Test
Ant Unit Your Functional TestAnt Unit Your Functional Test
Ant Unit Your Functional Test
jimmy zhao
 
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
Jakub Kulhan
 

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

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

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