# 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*
