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

1.0.0 2025-11-26 00:49 UTC

This package is not auto-updated.

Last update: 2025-11-26 22:58:03 UTC


README

PHP Version PHPUnit

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

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

  1. Utwórz klasę metody z atrybutem #[Handler] wskazującym handler:
    #[Handler(MyCustomHandler::class)]
    class MyCustomMethod extends BaseMethod
    {
        // konstruktor, parametry, itp.
    }
  1. Stwórz handler dziedziczący po BaseHandler:
    class MyCustomHandler extends BaseHandler
    {
        protected function applyBehavior(InvocationStubber $mock): void
        {
            // dodatkowa konfiguracja
        }
    }
  1. 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 biblioteki
  • tests/ – testy jednostkowe
  • tools/ – 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ć:

  1. Stwórz plik konfiguracyjny tools/config.sh, bazując na tools/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"
  1. Uruchamiaj skrypty z lokalnej konsoli, np.: ./tools/phpunit.sh

Skrypty pomocnicze