# Testy shopPRO ## Instalacja PHPUnit ### Opcja 1: Przez Composer (zalecane) ```bash composer install ``` ### Opcja 2: Ręcznie (jeśli nie masz Composera) ```bash wget https://phar.phpunit.de/phpunit-9.phar php phpunit-9.phar --version ``` ## Uruchamianie testów ### Wszystkie testy ```bash composer test # lub vendor/bin/phpunit ``` ### Konkretny plik ```bash vendor/bin/phpunit tests/Unit/Domain/Product/ProductRepositoryTest.php ``` ### Z pokryciem kodu ```bash composer test-coverage ``` ## Anatomia testu (AAA Pattern) ```php public function testGetQuantityReturnsCorrectValue() { // Arrange - Przygotowanie $mockDb = $this->createMock(\medoo::class); $mockDb->method('get')->willReturn(42); $repository = new ProductRepository($mockDb); // Act - Wykonanie akcji $quantity = $repository->getQuantity(123); // Assert - Sprawdzenie wyniku $this->assertEquals(42, $quantity); } ``` ## Najważniejsze asercje ```php $this->assertEquals(expected, actual); // Równość wartości $this->assertIsInt($value); // Typ $this->assertNull($value); // Czy null $this->assertTrue($condition); // Czy prawda ``` --- *Więcej: https://phpunit.de/documentation.html*