3.3 KiB
3.3 KiB
Testowanie shopPRO
Szybki start
Pelny zestaw testow
composer test
Alternatywnie (Windows):
./test.ps1
./test.bat
./test-simple.bat
./test-debug.bat
Alternatywnie (Git Bash):
./test.sh
Konkretny plik testowy
./test.ps1 tests/Unit/Domain/Product/ProductRepositoryTest.php
./test.ps1 tests/Unit/admin/Controllers/ArticlesControllerTest.php
Konkretny test (--filter)
./test.ps1 --filter testGetQuantityReturnsCorrectValue
Aktualny stan suite
Ostatnio zweryfikowano: 2026-02-10
OK (82 tests, 181 assertions)
Struktura testow
tests/
|-- bootstrap.php
|-- Unit/
| |-- Domain/
| | |-- Article/ArticleRepositoryTest.php
| | |-- Banner/BannerRepositoryTest.php
| | |-- Cache/CacheRepositoryTest.php
| | |-- Dictionaries/DictionariesRepositoryTest.php
| | |-- Product/ProductRepositoryTest.php
| | |-- Settings/SettingsRepositoryTest.php
| | `-- User/UserRepositoryTest.php
| `-- admin/
| `-- Controllers/
| |-- ArticlesControllerTest.php
| |-- DictionariesControllerTest.php
| |-- ProductArchiveControllerTest.php
| |-- SettingsControllerTest.php
| `-- UsersControllerTest.php
`-- Integration/
Tryby uruchamiania
1. TestDox (czytelna lista)
./test.bat
Uruchamia:
C:\xampp\php\php.exe phpunit.phar --testdox
2. Standard (kropki)
./test-simple.bat
Uruchamia:
C:\xampp\php\php.exe phpunit.phar
3. Debug (pelne logowanie)
./test-debug.bat
Uruchamia:
C:\xampp\php\php.exe phpunit.phar --debug
4. PowerShell (najbardziej niezawodne)
./test.ps1
- najpierw probuje
phpz PATH - jesli brak, probuje m.in.
C:\xampp\php\php.exe - zawsze dodaje
--do-not-cache-result
Interpretacja wynikow
. = test przeszedl
E = error (blad wykonania)
F = failure (niezgodna asercja)
Przyklad sukcesu:
................................................................. 65 / 82 ( 79%)
................. 82 / 82 (100%)
OK (82 tests, 181 assertions)
Dodawanie nowych testow
- Dodaj plik w odpowiednim module, np.
tests/Unit/Domain/<Module>/<Class>Test.php. - Rozszerz
PHPUnit\Framework\TestCase. - Nazwy metod zaczynaj od
test. - Trzymaj sie wzorca AAA: Arrange, Act, Assert.
Mockowanie (przyklad)
$mockDb = $this->createMock(\medoo::class);
$mockDb->method('get')->willReturn(42);
$repo = new ProductRepository($mockDb);
$value = $repo->getQuantity(123);
$this->assertEquals(42, $value);
Przydatne informacje
- Konfiguracja PHPUnit:
phpunit.xml - Bootstrap testow:
tests/bootstrap.php - Dodatkowy opis:
tests/README.md
Aktualizacja suite
Ostatnio zweryfikowano: 2026-02-12
OK (119 tests, 256 assertions)
Nowe testy dodane 2026-02-12:
tests/Unit/Domain/User/UserRepositoryTest.php(25 testow: CRUD, logon, 2FA verify/send, checkLogin, updateById)tests/Unit/admin/Controllers/UsersControllerTest.php(12 testow: kontrakty + normalizeUser)
Aktualizacja po migracji widokow Users (2026-02-12):
OK (120 tests, 262 assertions)
Aktualizacja suite (finalizacja Users)
Ostatnio zweryfikowano: 2026-02-12
OK (120 tests, 262 assertions)