Kurs i Enhetstestning med C++ och Catch2

Kurs i att skriva C++ enhetstest med Catch2

Skriv inte en rad produktionskod utan att ha ett tillhörande enhets-test. I denna kurs går vi rakt på sak och lär dig hur du använder Catch2 för att skriva genomtänkta enhetstester.
Detta får du lära dig
  • Installera och konfigurera Catch2
  • Skriva effektiva enhetstest
  • Hantera test-data i nästlade test-fall
  • Kunna formulera test-villkor och utdata-jämförare
  • Designa BDD test
  • Skriva parametriserade test
Kursinnehåll

Unit Testing and TDD

  • Type of tests
  • What is a unit test
  • Write F.I.R.S.T. tests
  • Structure of a unit test
  • Given-when-then style
  • What is test driven development (TDD)

Installation of Catch2

  • Catch2 at GitHub
  • Download the header-only library
  • Automatic download and configuration using CMake
  • Configuration of CLion to run Catch2

Writing a Test Function

  • Including Catch
  • Defining a test runner
  • Structure of a test function
  • Usage of REQUIRE()
  • Analyzing a failed test

Assertions

  • REQUIRE vs. CHECK macros
  • Dealing with floating-point comparisons
  • Asserting exceptions
  • Logging

Matchers

  • What is a matcher?
  • Using REQUIRE_THAT()
  • String matchers
  • Vector matchers
  • Floating-point matchers
  • Predicate lambda matchers
  • User-defined matchers

Test Fixtures

  • Defining a test function with nested SECTION blocks
  • Defining test data (fixture)
  • How nested test cases are executed and handed test data
  • Tagged test cases
  • Special tags

Scenarios and BDD-Style Test Cases

  • Defining a SCENARIO
  • Defining a test case using GIVEN / WHEN / THEN
  • Conjunctions

Parameterized Tests

  • Defining a TEMPLATE_TEST_CASE
  • Type-parameterized tests
  • Test-data generators
  • Value generators
  • Predicate-based generators
  • Random value generators
  • User-defined generators

Micro Benchmarks

  • What is a benchmark?
  • Enable benchmarking
  • Defining a BENCHMARK

Configuration

  • Writing your own main() function
  • Command-line options
  • Invoking the test runner
  • Compile-time configuration properties
  • Command-line options
  • Log reporters
  • CMake integration
SnabbFakta
NamnEnhetstestning med C++ och Catch2
Längd1 Dagar
NivåIntermediate
MålgruppErfarna C++ programmerare
FörkunskaperKännedom om Modern C++
Verktyg
  • GCC/G++ compiler, version 8 or later
  • Jetbrains CLion IDE
  • Ubuntu Linux @ VirtualBox or WLS @ Windows-10
KursDatum
DatumPlats Pris
2020-02-14Stockholm 11 000 kr
2020-03-06 Stockholm11 000 kr
2020-03-27 Stockholm11 000 kr
2020-04-17 Stockholm11 000 kr
2020-05-08 Stockholm11 000 kr
2020-05-28 Stockholm11 000 kr

Samma-Företags Rabatt

Vi ger 20% rabatt för tillkommande deltagare från samma företag vid samma kurs-tillfälle. Läs mer här.

Undervisningsspråk

Vårt tryckta kursmaterial är alltid författat på engelska. Den muntliga presentationen i våra klassrum är som regel på svenska, såvida inte samtliga deltagare samtycker till att vi genomför kursen på engelska.

Företagsintern Kurs

Om du beställer en företagsintern kurs kommer vi till er och håller kursen i era lokaler. Priset bestäms av vår prismodell och baseras på antalet kursdagar, antalet deltagare, samt i förekommande fall resa och logi.

Läs mer om vår prismodell och beställningsvillkor här.

Relaterade Kurser
KursDagarNivå
C++ 11/14/17 för C++ Programmerare3IntermediateVisa
C++ Programmering med Trådar 3AdvancedVisa
Linux Systemprogrammering i C++3Advanced Visa
Modern C++ Fördjupning3IntermediateVisa