PHPackages                             kgabryel/test-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. kgabryel/test-tools

ActiveLibrary[Testing &amp; Quality](/categories/testing)

kgabryel/test-tools
===================

Zestaw narzędzi testowych i helperów do PHPUnit

1.0.0(5mo ago)00MITPHPPHP &gt;=8.4

Since Nov 26Pushed 5mo agoCompare

[ Source](https://github.com/kgabryel/test-tools)[ Packagist](https://packagist.org/packages/kgabryel/test-tools)[ RSS](/packages/kgabryel-test-tools/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

Test Tools – zestaw helperów do PHPUnit
=======================================

[](#test-tools--zestaw-helperów-do-phpunit)

[![PHP Version](https://camo.githubusercontent.com/4b50df3fbffbd2f1276edb652547f1cecd4090a3ba5d4e46bd7946da75ec14e6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e342b2d627269676874677265656e2e737667)](https://www.php.net/)[![PHPUnit](https://camo.githubusercontent.com/adbd6e3851f4402278083ac478c198deeb5409b1133e5ffe67caf4954ea6a9c5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706870756e69742d31322e342b2d626c75652e737667)](https://phpunit.de/)

`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
-----------

[](#spis-treści)

- [Instalacja](#instalacja)
- [Przykład wykorzystania](#przyk%C5%82ad-wykorzystania)
- [Dodawanie własnej metody z handlerem](#dodawanie-w%C5%82asnej-metody-z-handlerem)
- [Struktura repozytorium](#struktura-repozytorium)
- [Praca z repozytorium](#praca-z-repozytorium)
- [Skrypty developerskie](#skrypty-developerskie)
- [Skrypty pomocnicze](#skrypty-pomocnicze)

Instalacja
----------

[](#instalacja)

Przez Composer:

```
composer require --dev kgabryel/test-tools
```

Przykład wykorzystania
----------------------

[](#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
------------------------------------

[](#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.
    }
```

2. Stwórz handler dziedziczący po BaseHandler:

```
    class MyCustomHandler extends BaseHandler
    {
        protected function applyBehavior(InvocationStubber $mock): void
        {
            // dodatkowa konfiguracja
        }
    }
```

3. 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
----------------------

[](#struktura-repozytorium)

- `src/` – kod źródłowy biblioteki
- `tests/` – testy jednostkowe
- `tools/` – narzędzie i skrypty developerskie

Praca z repozytorium
--------------------

[](#praca-z-repozytorium)

```
git clone  && cd  && composer install
```

Aby móc używać narzędzi developerskich:

```
cd tools && composer install
```

Skrypty developerskie
---------------------

[](#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`](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"
```

2. Uruchamiaj skrypty z lokalnej konsoli, np.: ./tools/phpunit.sh

Skrypty pomocnicze
------------------

[](#skrypty-pomocnicze)

- [`code-coverage.sh`](tools/code-coverage.sh) – generowanie raportu pokrycia testami - wygenerowany raport: tools/var/infection.txt &amp; tools/var/code-coverage/index.html
- [`cs-fixer.sh`](tools/cs-fixer.sh) – dodatkowy fixer kodu [`PHP-CS-Fixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer)
- [`infection.sh`](tools/infection.sh) – mutacje testów [`Infection`](https://infection.github.io/) - wygenerowany raport: tools/var/infection.txt &amp; tools/var/infection.html
- [`phpcbf.sh`](tools/phpcbf.sh) – automatyczna poprawa kodu [`PHP_CodeSniffer`](https://github.com/squizlabs/PHP_CodeSniffer)
- [`phpcs.sh`](tools/phpcs.sh) – sprawdza standardy kodu [`PHP_CodeSniffer`](https://github.com/squizlabs/PHP_CodeSniffer)
- [`phpmd.sh`](tools/phpmd.sh) – analiza kodu źródłowego [`PHP Mess Detector`](https://phpmd.org/) - wygenerowany raport: tools/var/phpmd.html
- [`phpmd-tests.sh`](tools/phpmd-tests.sh) – analiza kodu testów [`PHP Mess Detector`](https://phpmd.org/) - wygenerowany raport: tools/var/phpmd-tests.html
- [`phpstan.sh`](tools/phpstan.sh) – analiza statyczna kodu [`PHPStan`](https://phpstan.org/)
- [`phpunit.sh`](tools/phpunit.sh) – uruchamia testy jednostkowe, integracyjne i funkcjonalne [`PHPUnit`](https://phpunit.de/)

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance70

Regular maintenance activity

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

173d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b38ad1edf58b0440906890e2c4b8b96be68f06d64d1620989147eef3e3fad0d3?d=identicon)[Timilior](/maintainers/Timilior)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kgabryel-test-tools/health.svg)

```
[![Health](https://phpackages.com/badges/kgabryel-test-tools/health.svg)](https://phpackages.com/packages/kgabryel-test-tools)
```

###  Alternatives

[phpspec/prophecy

Highly opinionated mocking framework for PHP 5.3+

8.5k551.7M682](/packages/phpspec-prophecy)[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[beberlei/assert

Thin assertion library for input validation in business models.

2.4k96.9M570](/packages/beberlei-assert)[mikey179/vfsstream

Virtual file system to mock the real file system in unit tests.

1.4k108.0M2.7k](/packages/mikey179-vfsstream)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
