Symfony

Testing Symfony

PHPUnit, test case, functional test, database fixtures, mocking, code coverage, Panther

22 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļāļāļēāļĢāļ—āļ”āļŠāļ­āļšāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆ Symfony āđƒāļŠāđ‰āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

PHPUnit āđ€āļ›āđ‡āļ™āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢāļ—āļĩāđˆāļĢāļ§āļĄāļ­āļĒāļđāđˆāđƒāļ™ Symfony Symfony āļĄāļĩāđāļžāđ‡āļāđ€āļāļˆ symfony/test-pack āļ‹āļķāđˆāļ‡āļĢāļ§āļĄ PHPUnit āđāļĨāļ°āļ„āļĨāļēāļŠāļžāļ·āđ‰āļ™āļāļēāļ™āļ­āļĒāđˆāļēāļ‡ WebTestCase āđāļĨāļ° KernelTestCase āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ—āļ”āļŠāļ­āļšāđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™ PHPUnit āđ€āļ›āđ‡āļ™āļĄāļēāļ•āļĢāļāļēāļ™āđ‚āļ”āļĒāļžāļĪāļ•āļīāļ™āļąāļĒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļ”āļŠāļ­āļš PHP āđāļĨāļ°āļĄāļ­āļšāļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāļ‚āļ­āļ‡ assertion āđāļĨāļ°āļŸāļĩāđ€āļˆāļ­āļĢāđŒāļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ

2

āļ„āļ§āļĢāđƒāļŠāđ‰āļ„āļĨāļēāļŠāļžāļ·āđ‰āļ™āļāļēāļ™āđƒāļ”āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļšāđ€āļ‹āļ­āļĢāđŒāļ§āļīāļŠāļ‚āļ­āļ‡ Symfony āđ‚āļ”āļĒāđ„āļĄāđˆāđ‚āļŦāļĨāļ” HTTP kernel?

āļ„āļģāļ•āļ­āļš

KernelTestCase āđ€āļ›āđ‡āļ™āļ„āļĨāļēāļŠāļžāļ·āđ‰āļ™āļāļēāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļ”āļŠāļ­āļšāđāļšāļš integration āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡ service container āđ‚āļ”āļĒāđ„āļĄāđˆāđ‚āļŦāļĨāļ”āđ€āļĨāđ€āļĒāļ­āļĢāđŒ HTTP āļĄāļąāļ™āļˆāļ°āļšāļđāļ• kernel āļ‚āļ­āļ‡ Symfony āđāļĨāļ°āļ­āļ™āļļāļāļēāļ•āđƒāļŦāđ‰āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āđ€āļ‹āļ­āļĢāđŒāļ§āļīāļŠāļœāđˆāļēāļ™ self::getContainer() āļ‹āļķāđˆāļ‡āđ€āļšāļēāļāļ§āđˆāļē WebTestCase āđ€āļžāļĢāļēāļ°āđ„āļĄāđˆāđ„āļ”āđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ HTTP client

3

āļˆāļ°āđ€āļ‚āđ‰āļēāļ–āļķāļ‡ service container āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ—āļĩāđˆāļŠāļ·āļšāļ—āļ­āļ”āļˆāļēāļ KernelTestCase āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

āđƒāļ™ Symfony 5.3+ āđ€āļĄāļ˜āļ­āļ”āđāļšāļš static self::getContainer() āđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāđāļ™āļ°āļ™āļģāđƒāļ™āļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡ container āļŦāļĨāļąāļ‡āļˆāļēāļāļšāļđāļ• kernel āļ”āđ‰āļ§āļĒ self::bootKernel() āđ€āļĄāļ˜āļ­āļ”āļ™āļĩāđ‰āļˆāļ°āļ„āļ·āļ™āļ„āđˆāļē test container āļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āļ—āļļāļāđ€āļ‹āļ­āļĢāđŒāļ§āļīāļŠāđ€āļ›āđ‡āļ™ public āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ—āļ”āļŠāļ­āļšāđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™ āļŠāđˆāļ§āļ™āđ„āļ§āļĒāļēāļāļĢāļ“āđŒāđ€āļ”āļīāļĄ self::$container āļ–āļđāļāđ€āļĨāļīāļāđƒāļŠāđ‰āđāļĨāđ‰āļ§

4

āļ„āļ§āļĢāđƒāļŠāđ‰āļ„āļĨāļēāļŠāđƒāļ”āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļš controller āļ”āđ‰āļ§āļĒāļāļēāļĢāļˆāļģāļĨāļ­āļ‡āļ„āļģāļ‚āļ­ HTTP?

5

āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢāļ§āđˆāļē HTTP request āļ„āļ·āļ™āļ„āđˆāļē status code 200 āđƒāļ™ functional test?

+19 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Symfony āļ­āļ·āđˆāļ™āđ†

PHP āļŠāļĄāļąāļĒāđƒāļŦāļĄāđˆ (8.1+)

Junior
20 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Symfony

Junior
25 āļ„āļģāļ–āļēāļĄ

Routing & Controllers

Junior
20 āļ„āļģāļ–āļēāļĄ

Twig & Templates

Junior
20 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Doctrine ORM

Junior
25 āļ„āļģāļ–āļēāļĄ

āļŸāļ­āļĢāđŒāļĄ Symfony

Junior
22 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

Junior
18 āļ„āļģāļ–āļēāļĄ

Dependency Injection & Services

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

Security & Authentication

Mid-Level
26 āļ„āļģāļ–āļēāļĄ

Doctrine āļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

API Platform

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

Serializer Component

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Events & Event Subscribers

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Console & Commands

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Messenger Component

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

HTTP Client

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Cache & āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Workflow Component

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Mailer Component

Mid-Level
16 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđāļ›āļĨāđāļĨāļ° i18n

Mid-Level
16 āļ„āļģāļ–āļēāļĄ

EasyAdmin Bundle

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄ Symfony

Senior
24 āļ„āļģāļ–āļēāļĄ

āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

Senior
22 āļ„āļģāļ–āļēāļĄ

āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
22 āļ„āļģāļ–āļēāļĄ

Custom Bundles

Senior
20 āļ„āļģāļ–āļēāļĄ

Microservices āļ”āđ‰āļ§āļĒ Symfony

Senior
22 āļ„āļģāļ–āļēāļĄ

Real-time & WebSockets

Senior
18 āļ„āļģāļ–āļēāļĄ

Deployment & DevOps

Senior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Symfony āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ