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
2019-09-20Stockholm 11 000 kr
2019-10-25 Stockholm11 000 kr
2019-11-11 Stockholm11 000 kr
2019-12-13 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.

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