background

maandag, december 2, 2024 - donderdag, december 5, 2024

Magento 2 Testing cursus

Online via Zoom

Doe mee met onze aankomende training

Wanneer je bedrijfskritische code in een live omgeving hebt, zoals bij een webshop, is het van vitaal belang om ervoor te zorgen dat bugs niet in productie terechtkomen. Nog belangrijker, je wilt niet dat bugs twee keer voorkomen. Testen is de sleutel. Maar om te beginnen met testen, heb je allereerst wat begeleiding nodig. Ten tweede moet je ook wennen aan de juiste flow. Deze training helpt je om de gewoonte aan te leren van het schrijven van unit tests, integratietests en functionele tests.

Jisse Reitsma

Jouw docent Jisse Reitsma

Jisse is de lead developer van 60+ Magento extensies en geeft al jaren technische trainingen voor Magento. Naast zijn vermogen om complexe technologie te begrijpen, is hij bedreven in het overzetten van deze kennis naar anderen. Jisse is de mastermind van de developer events MageTestFest, Reacticon en MageUnconference NL en een voormalig Magento Master (3x). Hij is ook actief in de Nederlandse vereniging Mage-OS Nederland.

Details van deze training

Start datum
maandag, december 2, 2024
Eind datum
donderdag, december 5, 2024
Tijden per dag
09:30 - 12:30
Dagen
4 dagen
Locatie
Online via Zoom
Minimum aantal deelnemers
3
Maximum aantal deelnemers
12
Prijs
€975 (exclusief BTW)
Inclusief
Courseware, recordings
Bemachtig nu een ticket

@ Online via Zoom

Online via Zoom

Deze training wordt via Zoom gehouden. We adviseren om van te voren de Zoom desktop client geinstalleerd te hebben om de beste performance te garanderen.

Met de voordelen van de cloud

Je kan deelnemen vanaf die plek die voor jou het beste uitkomt. En een recording van de Zoom sessie zal achteraf ook terug te kijken zijn.

Yireo Courseware Portal

Naast de training zelf krijg je ook toegang tot online resources die via ons eigen custom Yireo Courseware Portal toegankelijk worden gemaakt.

Wat jij nodig hebt

Zorg voor een goede internetverbinding. En om actief te kunnen participeren is een microfoon (idealiter een headset) en webcam aanbevolen.

Programma

Datum
dec. 2
Starttijd
09:30
Eindtijd
12:30
Day 1
Datum
dec. 3
Starttijd
09:30
Eindtijd
12:30
Day 2
Datum
dec. 4
Starttijd
09:30
Eindtijd
12:30
Day 3
Datum
dec. 5
Starttijd
09:30
Eindtijd
12:30
Day 4
Registreer nu

Magento cursus onderwerpen

Krijg een indruk van onze training

  • Why testing?
  • Testing strategies
  • Testing tools
  • Test Driven Development (TDD)
  • TDD is dead
  • System Under Test (SUT)
  • Types of testing
  • Magento tests
  • Organizing your tests
  • Make it a habit
  • PHPUnit overview
  • PHPUnit installation
  • PHPUnit configuration file
  • PHPUnit bootstrap
  • Breaking changes in PHPUnit
  • PHPUnit 10 upgrade
  • Setup PHPUnit
  • Run PHPUnit with Docker
  • Create Run Configuration
  • Running tests from PhpStorm
  • Rerun automatically
  • Rerun failed tests
  • Debug tests with Xdebug
  • Structure of a unit test class
  • TDD example
  • Using dev/tests/unit/phpunit.xml.dist
  • Simple example unit test
  • Coding katas
  • Testing a Config-class
  • Mocking classes
  • Stubs vs mocks vs dummies
  • Using the ObjectManager in unit tests
  • Testing exceptions
  • Data providers in tests
  • setUp & tearDown
  • Adding messages to the output
  • Spying with PHPUnit
  • Marking tests
  • Yireo Test Generator
  • Mocking functions
  • Good practices for tests
  • Code coverage
  • Overview of Integration Tests
  • Setting up integration tests
  • Running Integration Tests
  • TESTS_CLEANUP
  • Resetting the Integration Tests environment
  • First integration test
  • Which ObjectManager?
  • Testing a Config-class
  • Mocking vs ObjectManager in integration tests
  • Magento annotations & attributes
  • Config fixtures
  • Data fixtures
  • Tips for integration tests
  • Yireo Test Generator
  • Running tests with Xdebug enabled
  • Performance overview
  • ReachDigital Integration Testing Framework
  • Add Redis server
  • 04-dummy-elasticsearch
  • MySQL tuning
  • Composer replacements
  • Yireo Integration Test Helper
  • Minimizing modules that are enabled
  • Parallel test runs
  • Using tmpfs to speed up Integration Tests
  • yireo/magento-integration-tests-docker-composer
  • Testing module behaviour
  • First test
  • Generating tests
  • Checking for configuration values
  • Testing console commands
  • Testing controllers
  • Testing the layout independently
  • Testing sessions
  • Testing entities
  • Testing a schema
  • Testing event observers
  • Testing Magewire components
  • Testing DI plugins
  • ObjectManager preference overrides
  • Yireo Integration Testing Helper
  • Could not connect to the Amqp Server
  • Base table or view not found
  • Cannot open file
  • Connection refused
  • The default website isn't defined. Set the website and try again
  • Unable to retrieve deployment version
  • Issue with ifconfig in XML layout
  • tasklist.exe not found
  • The value of autoloader is specified, but file doesn't exist
  • Cannot instantiate interface Magento\Framework\Config\CacheInterface
  • About code quality
  • Defensive programming
  • Object Calisthenics
  • SOLID
  • Law of Demeter
  • Other principles
  • Static code analysis
  • What is legacy code?
  • Refactoring with tests
  • Strangler fig pattern
  • Characterization tests
  • Overview of Functional Tests
  • Functional tests setup
  • Validate products
  • Customer VAT validation
  • API Functional Testing
  • Custom REST test
  • Custom GraphQL test
  • Magento Functional Testing Framework (MFTF)
  • Overview of static tests
  • Running tests on Magento core
  • PHP CodeSniffer (PHPCS)
  • Magento 2 Coding Standard
  • Running PHPStan in Magento
  • PHP linting
  • Varnish tests
  • Mutation testing
  • Infection
  • Automated testing overview
  • GitHub Actions
  • End-to-End testing
  • Cypress
  • Resources
Deze cursus is up-to-date gebracht voor compatibiliteit met Magento 2.4.7-p1

Bekijk nu een preview

Zien is geloven

Testing strategies

Of blader door al onze lessen in ons cursusportaal

We zijn continue bezig met het updaten van ons cursusmateriaal, maar het volgende is een real-life snapshot
Why testing?
Testing strategies free
Testing tools
Test Driven Development (TDD)
TDD is dead
System Under Test (SUT)
Types of testing
Magento tests
Organizing your tests
Make it a habit
PHPUnit overview
PHPUnit installation
PHPUnit configuration file
PHPUnit bootstrap
Breaking changes in PHPUnit
PHPUnit 10 upgrade
Setup PHPUnit
Run PHPUnit with Docker
Create Run Configuration
Running tests from PhpStorm
Rerun automatically
Rerun failed tests
Debug tests with Xdebug
Structure of a unit test class
TDD example
Using dev/tests/unit/phpunit.xml.dist
Simple example unit test
Coding katas
Testing a Config-class
Mocking classes
Stubs vs mocks vs dummies
Using the ObjectManager in unit tests
Testing exceptions
Data providers in tests
setUp & tearDown
Adding messages to the output
Spying with PHPUnit
Marking tests
Yireo Test Generator
Mocking functions
Good practices for tests
Code coverage
Overview of Integration Tests
Setting up integration tests
Running Integration Tests
TESTS_CLEANUP
Resetting the Integration Tests environment
First integration test
Which ObjectManager?
Testing a Config-class
Mocking vs ObjectManager in integration tests
Magento annotations & attributes
Config fixtures
Data fixtures
Tips for integration tests
Yireo Test Generator
Running tests with Xdebug enabled
Performance overview
ReachDigital Integration Testing Framework
Add Redis server
04-dummy-elasticsearch
MySQL tuning
Composer replacements
Yireo Integration Test Helper
Minimizing modules that are enabled
Parallel test runs
Using tmpfs to speed up Integration Tests
yireo/magento-integration-tests-docker-composer
Testing module behaviour
First test
Generating tests
Checking for configuration values
Testing console commands
Testing controllers
Testing the layout independently
Testing sessions
Testing entities
Testing a schema
Testing event observers
Testing Magewire components
Testing DI plugins
ObjectManager preference overrides
Yireo Integration Testing Helper
Could not connect to the Amqp Server
Base table or view not found
Cannot open file
Connection refused
The default website isn't defined. Set the website and try again
Unable to retrieve deployment version
Issue with ifconfig in XML layout
tasklist.exe not found
The value of autoloader is specified, but file doesn't exist
Cannot instantiate interface Magento\Framework\Config\CacheInterface
About code quality
Defensive programming
Object Calisthenics
SOLID
Law of Demeter
Other principles
Static code analysis
What is legacy code?
Refactoring with tests
Strangler fig pattern
Characterization tests
Overview of Functional Tests
Functional tests setup
Validate products
Customer VAT validation
API Functional Testing
Custom REST test
Custom GraphQL test
Magento Functional Testing Framework (MFTF)
Overview of static tests
Running tests on Magento core
PHP CodeSniffer (PHPCS)
Magento 2 Coding Standard
Running PHPStan in Magento
PHP linting
Varnish tests
Mutation testing
Infection
Automated testing overview
GitHub Actions
End-to-End testing
Cypress
Resources

Full access to all videos and other coursematerial is available for attendees of live trainings.

Deze cursus is up-to-date gebracht voor compatibiliteit met Magento 2.4.7-p1

Ontdek onze Integratie Test Helper

Als je er klaar voor bent, kun je onze Yireo_IntegrationTestHelper uitproberen, die verschillende trucs toevoegt aan Magento Integration Testing: Extra asserties, een OOP install-config-mysql.php bestand, CLI commando's.

github.com/yireo/Yireo_IntegrationTestHelper

Target group

Doelgroep

  • Magento backend ontwikkelaars
  • Magento lead ontwikkelaars
kayne-spikker.jpg
Jisse snapt hoe die je brein aan het werk kan zetten, en je constant op het puntje van je stoel zit.
Kayne Spikker (Modern Minds)
background

We gaven je MageTestFest

In 2018 organiseerden we voor het eerst MageTestFest - in Amersfoort. Ruimte voor 180 ontwikkelaars, volledig gericht op Magento testen, met grote namen als Sebastian Bergmann en Mathias Verraes. In 2019 deden we het nog een keer - in Florence, Italië. En misschien, misschien, op een dag, komen we terug.

Requirements

Vereisten

  • Magento 2-ervaring
  • Kennis van Magento 2 OOP
  • Ervaring met PHP OOP
rick-bouma.jpg
De training was top! We hebben alle golden nuggets geleerd, duidelijk en toegankelijk gepresenteerd. Essentieel voor iedereen die met Magento werkt of gaat werken!
Rick Bouma (Epartment)

Quotes van klanten

Gestructureerde training waardoor mijn algemene kennis van e-commerce en Magento is verbreed. Doel behaald! Erwin de Groot (Vendic)
De training was top! We hebben alle golden nuggets geleerd, duidelijk en toegankelijk gepresenteerd. Essentieel voor iedereen die met Magento werkt of gaat werken! Rick Bouma (Epartment)
Zeer leerzame en nuttige training! Ondanks dat ik al 3+ jaar Magento ervaring heb, was er voldoende informatie waaruit ik nieuwe dingen heb geleerd. Renze Dijkstra (E-tales)
Bekijk nog meer quotes van onze klanten
background

Yireo kan de juiste partner voor jullie zijn

We hebben meer dan 5000 developers in verschillende disciplines onderwezen sinds 2005

  • Professionele trainingen tegen betaalbare prijzen
  • Echt actief met tal van vrijwillige projecten in de gemeenschap
  • Trainings, bootcamps, hackathons, events
  • Gepassioneerd, enthousiast, goed geïnformeerd

Een paar klanten die we hielpen met training in afgelopen jaren

lupa-studio.jpg
i95dev.jpg
iclicks.png
magespecialist.png
elgentos.png
gerrits.png
classyllama.png
muntz.png
alekseon.png
ceezoo.jpg
lemundo.png
emico.png
Bekijk een meer compleet overzicht van onze klanten

Veelgestelde vragen

Er is een minimum aantal deelnemers vermeld. Wat betekent dit?

De training wordt alleen in een fysiek klaslokaal gegeven als er een minimum aantal deelnemers is. Dit aantal is meestal 4, maar soms brengen we dit terug naar 2 of 3. Dit minimum aantal betekent simpelweg dat - als een les niet "vol" is - je óf jouw geld terugkrijgt óf jouw ticket wordt overgezet naar een andere datum. Bij On-Demand cursussen (videocursussen) is dit aantal niet van toepassing.