kgabryel / test-tools
Zestaw narzędzi testowych i helperów do PHPUnit
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/kgabryel/test-tools
Requires
- php: >=8.4
Requires (Dev)
- phpunit/phpunit: ^12.4
This package is not auto-updated.
Last update: 2025-11-26 22:58:03 UTC
README
Kgabryel/TestTools to biblioteka pomocnicza dla PHPUnit, która ułatwia tworzenie i konfigurację mocków.
Kluczową funkcjonalnością jest kontrola listy dozwolonych metod – w mockach można wywołać tylko te metody, które określimy, dzięki czemu przypadkowe wywołania nie powodują fałszywego sukcesu testu.
Spis treści
- Instalacja
- Przykład wykorzystania
- Dodawanie własnej metody z handlerem
- Struktura repozytorium
- Praca z repozytorium
- Skrypty developerskie
- Skrypty pomocnicze
Instalacja
Przez Composer:
composer require --dev kgabryel/test-tools
Przykład wykorzystania
class MyTest extends BaseTestCase { public function testExample(): void { $mock = $this->getMock( DummyClass::class, new AllowedMethodsList(), new ReturnsValueMethod('return1', null, 42), new VoidMethod('withException', null), ); $this->assertSame(42, $mock->return1()); $mock->withException(); } }
Dodawanie własnej metody z handlerem
- Utwórz klasę metody z atrybutem #[Handler] wskazującym handler:
#[Handler(MyCustomHandler::class)]
class MyCustomMethod extends BaseMethod
{
// konstruktor, parametry, itp.
}
- Stwórz handler dziedziczący po BaseHandler:
class MyCustomHandler extends BaseHandler { protected function applyBehavior(InvocationStubber $mock): void { // dodatkowa konfiguracja } }
- Użycie w teście:
class MyTest extends BaseTestCase { public function testExample(): void { $mock = $this->getMock( DummyClass::class, new AllowedMethodsList(), new MyCustomMethod('return1', null, 42), ); } }
Handler automatycznie zostanie przypisany do metody dzięki atrybutowi #[Handler].
Struktura repozytorium
src/– kod źródłowy bibliotekitests/– testy jednostkowetools/– narzędzie i skrypty developerskie
Praca z repozytorium
git clone <repo-url> && cd <repo-folder> && composer install
Aby móc używać narzędzi developerskich:
cd tools && composer install
Skrypty developerskie
Skrypty w katalogu tools/ są przygotowane do uruchamiania w Dockerze, korzystają z kontenera PHP określonego w config.sh (domyślnie php).
Aby z nich korzystać:
- Stwórz plik konfiguracyjny
tools/config.sh, bazując natools/config.example.sh
# Nazwa kontenera PHP w Dockerze PHP_CONTAINER="php" # Ścieżka do katalogu projektu wewnątrz kontenera PROJECT_DIR="/var/www/html/test-tools" TOOLS_DIR="${PROJECT_DIR}/tools"
- Uruchamiaj skrypty z lokalnej konsoli, np.: ./tools/phpunit.sh
Skrypty pomocnicze
code-coverage.sh– generowanie raportu pokrycia testami - wygenerowany raport: tools/var/infection.txt & tools/var/code-coverage/index.htmlcs-fixer.sh– dodatkowy fixer koduPHP-CS-Fixerinfection.sh– mutacje testówInfection- wygenerowany raport: tools/var/infection.txt & tools/var/infection.htmlphpcbf.sh– automatyczna poprawa koduPHP_CodeSnifferphpcs.sh– sprawdza standardy koduPHP_CodeSnifferphpmd.sh– analiza kodu źródłowegoPHP Mess Detector- wygenerowany raport: tools/var/phpmd.htmlphpmd-tests.sh– analiza kodu testówPHP Mess Detector- wygenerowany raport: tools/var/phpmd-tests.htmlphpstan.sh– analiza statyczna koduPHPStanphpunit.sh– uruchamia testy jednostkowe, integracyjne i funkcjonalnePHPUnit