Files
cmsPRO/docs/TESTING.md
Jacek Pyziak 8e6b29976c v1.691: testy jednostkowe Domain\, infrastruktura PHPUnit, paczka aktualizacji
- Dodano testy: SettingsRepositoryTest, LanguagesRepositoryTest, UserRepositoryTest
- Infrastruktura: phpunit.xml, composer.json (phpunit/phpunit ^10), tests/bootstrap.php
- Bootstrap stuby: \Shared\Cache\CacheHandler (in-memory), \S
- Zaktualizowano docs/TESTING.md dla cmsPRO
- Paczka: updates/1.60/ver_1.691.zip + manifest

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 23:50:33 +01:00

1.5 KiB

Testowanie cmsPRO

Szybki start

# Instalacja PHPUnit (jednorazowo)
composer install

# Uruchomienie testów
./vendor/bin/phpunit

# Konkretny plik
./vendor/bin/phpunit tests/Unit/Domain/Settings/SettingsRepositoryTest.php

# Konkretny test
./vendor/bin/phpunit --filter testAllSettingsReturnsMappedArray

Aktualny stan

Testy jednostkowe dla Domain\ (Faza 2 DDD)

Konfiguracja

  • PHPUnit 10 via composer
  • Bootstrap: tests/bootstrap.php
  • Config: phpunit.xml

Struktura testów

tests/
├── bootstrap.php                               ← autoloader + stuby (CacheHandler, S)
└── Unit/
    └── Domain/
        ├── Languages/LanguagesRepositoryTest.php
        ├── Settings/SettingsRepositoryTest.php
        └── User/UserRepositoryTest.php

Stuby (bootstrap.php)

  • \Shared\Cache\CacheHandler — in-memory stub z fetch()/store()/delete()/reset()
  • \S — stub z delete_cache(), htacces(), get_domain(), send_email()
  • medoo — mockowany przez PHPUnit ($this->createMock(\medoo::class))

Dodawanie nowych testów

  1. Plik w tests/Unit/Domain/<Modul>/<Klasa>Test.php.
  2. Rozszerz PHPUnit\Framework\TestCase.
  3. Nazwy metod zaczynaj od test.
  4. Wzorzec AAA: Arrange, Act, Assert.

Mockowanie Medoo

$db = $this->createMock(\medoo::class);
$db->method('get')->willReturn(['id' => 1]);

$repo  = new SettingsRepository($db);
$value = $repo->visitCounter();

$this->assertSame('1', $value);