# Cód PHP a thástáil: PHPUnit agus Pest

> PHPUnit agus Pest mínithe: leaganacha, céad tástálacha, cineálacha tástála ciallmhara agus cén fáth a ndéanann tástálacha nuashonruithe tar éis PHP2Shell níos sábháilte agus níos tapúla.

Foinse: https://phpsos.de/ga/php/php-testen/  
Staid: 25/10/2026  
Soláthraí: PHP SOS, Cabhair éigeandála PHP agus slándáil freastalaí. Cabhair láithreach trí WhatsApp: https://wa.me/491736494914?text=Dia%20duit%2C%20a%20PHP%20SOS%2C%20t%C3%A1%20cabhair%20de%20dh%C3%ADth%20orainn%20len%C3%A1r%20bhfreastala%C3%AD%20PHP.%20Cuideachta%3A%20%E2%80%A6%20Su%C3%ADomh%20gr%C3%A9as%C3%A1in%3A%20%E2%80%A6

**Go achomair:** Is é PHPUnit an uirlis chaighdeánach chun cód PHP a thástáil go huathoibríoch; is creat é Pest a thógann air le nodaireacht níos giorra. Faoi láthair is é PHPUnit 13 an leagan reatha (ó Feabhra 2026, ó PHP 8.4), tá Pest i leagan 5. Ní dhúnann tástálacha uathoibríocha leochaileachtaí slándála i PHP féin, ach déanann siad nuashonruithe inphleanáilte: tar éis PHP2Shell agus roimh dheireadh tacaíochta PHP 8.2 an 31.12.2026 is é sin an buntáiste cinntitheach.

## Cén fáth cód PHP a thástáil?

Don bhainistíocht is féidir an tairbhe a achoimriú in abairt amháin: déanann tástálacha athruithe níos saoire agus níos sábháilte. Seiceálann tástáil uathoibríoch i soicindí an ndéanann feidhm an rud ba cheart di a dhéanamh fós, mar shampla an ríomhann cairt siopadóireachta i gceart nó an bhfuil logáil isteach ag diúltú do phasfhocail mhícheart. Gan tástálacha seiceálann duine de láimh é sin, nó ní sheiceálann aon duine.

Is soiléire an difríocht ag nuashonruithe. Nuair ba ghá PHP a nuashonrú go gasta mar gheall ar leochaileacht chriticiúil, cuireann a lán oibreoirí moill orthu féin mar go bhfuil eagla orthu roimh earráidí sa siopa nó sa tairseach custaiméirí. Le tacar tástála ritheann an nuashonrú ar dtús i dtimpeallacht thástála, léiríonn na tástálacha fadhbanna, agus ina dhiaidh sin téann sé beo.

## PHPUnit: an caighdeán do thástálacha PHP

Foilsítear PHPUnit gach bliain i bhFeabhra i bpríomhleagan nua. Éilíonn gach leagan íosleagan de PHP agus faigheann sé ceartúcháin earráide ar feadh thart ar dhá bhliain. De réir phpunit.de tá an méid seo i bhfeidhm:

| PHPUnit | Eisithe | Riachtanas PHP | Ceartúcháin earráide go dtí |
|---|---|---|---|
| 13 | 06.02.2026 | ó PHP 8.4 | 04.02.2028 |
| 12 | 07.02.2025 | ó PHP 8.3 | 05.02.2027 |
| 11 | 02.02.2024 | ó PHP 8.2 | 06.02.2026 |
| 10 | 03.02.2023 | ó PHP 8.1 | 07.02.2025 |

Léiríonn an tábla ceangal praiticiúil: de ghnáth ritheann tionscadal a úsáideann PHPUnit 10 fós ar sheanleagan PHP. Ba cheart uirlisí tástála agus leagan PHP a ardú le chéile. Suiteáiltear PHPUnit de ghnáth trí [Composer](https://phpsos.de/ga/php/composer/) mar spleáchas forbartha.

## An chéad tástáil le PHPUnit

Is aicme é tástáil a oidhreoidh ó `PHPUnit\Framework\TestCase`. Tá modhanna tástála poiblí agus tosaíonn siad le `test`, nó marcálann tú iad leis an tréith `#[Test]`. Seiceálann an sampla feidhm shimplí chun praghas a ríomh:

```php
<?php declare(strict_types=1);

use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

final class BruttopreisTest extends TestCase
{
    public static function preise(): array
    {
        return [
            'Normalsatz'   => [10000, 19, 11900],
            'Ermäßigt'     => [10000, 7, 10700],
            'Null bleibt Null' => [0, 19, 0],
        ];
    }

    #[DataProvider('preise')]
    public function testBruttopreisInCent(int $netto, int $satz, int $erwartet): void
    {
        $this->assertSame($erwartet, bruttopreis($netto, $satz));
    }
}
```

Soláthraíonn an Data Provider roinnt cásanna don tástáil chéanna. De réir dhoiciméadú PHPUnit ní mór dó a bheith poiblí agus statach. Ríomhtar i cent mar shlánuimhir, ionas nach dtagann earráidí cruinnithe ó uimhreacha snámhphointe. Ritheann an tacar le `./vendor/bin/phpunit`, má shuiteáiltear PHPUnit trí Composer.

## Pest: an bonn céanna, nodaireacht níos giorra

De réir an doiciméadaithe tá Pest tógtha ar PHPUnit. Scríobhtar tástálacha mar fheidhmeanna le `it()` nó `test()` agus ionchais le `expect()`. Éilíonn Pest 5 PHP 8.4. An tsuiteáil de réir an doiciméadaithe:

```bash
composer remove phpunit/phpunit
composer require pestphp/pest --dev --with-all-dependencies
./vendor/bin/pest --init
```

An tástáil chéanna i nodaireacht Pest:

```php
<?php
it('berechnet den Bruttopreis zum Normalsatz', function () {
    expect(bruttopreis(10000, 19))->toBe(11900);
});
```

Athraíonn an breiseán `pestphp/pest-plugin-drift` tástálacha PHPUnit atá ann cheana den chuid is mó go huathoibríoch. Cén nodaireacht a roghnaíonn foireann, is ceist bhlas é; is é an rud cinntitheach go ritheann tástálacha go rialta.

## Cé na cineálacha tástála atá ciallmhar

1. **Tástálacha aonaid:** seiceálann siad feidhmeanna agus aicmí aonair gan bunachar sonraí ná líonra.
2. **Tástálacha comhtháthaithe:** seiceálann siad an comhoibriú le bunachar sonraí, córas comhad nó comhéadain.
3. **Tástálacha feidhme thar HTTP:** glaonn siad leathanaigh agus foirmeacha mar a dhéanann brabhsálaí.
4. **Tástálacha cúlchéimnithe slándála:** coinníonn siad earráidí ceartaithe seasta, mar shampla go gcosctar aschuir le `htmlspecialchars()` nó go dteipeann ar logáil isteach tar éis pasfhocal mícheart.
5. **Tástálacha toitín tar éis an imscartha:** cúpla seiceáil tapa an bhfreagraíonn an suíomh beo tar éis nuashonraithe.

Mar fhorlíonadh ar thástálacha, aimsíonn [anailís statach le PHPStan agus Psalm](https://phpsos.de/ga/php/statische-analyse/) earráidí gan an cód a rith.

## Tástálacha mar líonra sábhála do nuashonruithe agus do PHP2Shell

Léirigh PHP2Shell cé chomh gearr is féidir an t-am a bheith idir foilsiú agus brú gníomhaíochta: fógra an 20.10.2026, paistí an 21.10.2026, leibhéal rabhaidh Oráiste an BSI. An té a raibh tacar tástála aige, d'fhéadfadh sé PHP 8.4.27 nó 8.3.36 a shuiteáil i dtimpeallacht thástála, na tástálacha a rith agus dul beo an lá céanna. Gan tástálacha ba é an rogha go minic idir nuashonrú gan seiceáil agus leochaileacht oscailte.

Níos mó fós is é an tairbhe agus príomhleagan á athrú. Do PHP 8.1 agus níos sine níl nuashonruithe oifigiúla ann a thuilleadh, agus críochnaíonn PHP 8.2 an 31.12.2026, mar a mhíníonn an leathanach [PHP End of Life](https://phpsos.de/ga/ratgeber/php-end-of-life-risiken/). Léiríonn rith tástála i gcoinne an sprioclinbh go luath cé na feidhmeanna imithe i léig ar gá a athsholáthar. Is ciallmhar píblíne CI a ritheann tástálacha i gcoinne roinnt leaganacha PHP, chomh maith le súil ar Release Candidates ar nós PHP 8.6.0, ach riamh sa táirgeadh.

> **Leid:**
> Scríobh tástáil do gach earráid slándála a ceartaíodh i d'fheidhmchlár. Ar an gcaoi sin cinntíonn tú nach dtagann an earráid chéanna ar ais le hathrú níos déanaí.

## Conas a chabhraíonn PHP SOS go praiticiúil?

Leis an [aistriú ó PHP 8.1 agus níos sine](https://phpsos.de/ga/leistungen/php-migration-legacy/) agus le nuashonruithe leanúnacha tacaímid mar seo:

- **An stoc a mheas:** Cé na tástálacha atá ann, cé na leaganacha PHP agus PHPUnit atá ag rith, cá bhfuil tástálacha in easnamh do phróisis chriticiúla?
- **Íos-chlúdach a chruthú:** In éineacht le d'fhoireann forbartha nó le d'ghníomhaireacht cosnaímid logáil isteach, foirmeacha agus bealaí ordaithe le tástálacha.
- **Nuashonruithe a thástáil:** Ritheann leaganacha nua PHP i dtimpeallacht thástála i gcoinne an tacair ar dtús.
- **An toradh a dhoiciméadú:** Faigheann tú torthaí tástála agus staideanna leaganacha mar fhianaise ar an gcéim phaistithe nó aistrithe.


## Ceisteanna coitianta

**Cén leagan PHPUnit atá de dhíth orm?**  
Braitheann sé ar do leagan PHP. Éilíonn PHPUnit 13 PHP 8.4, PHPUnit 12 PHP 8.3 agus PHPUnit 11 PHP 8.2. Tá an tábla reatha ar phpunit.de faoi na leaganacha tacaithe.

**An bhfuil Pest ina chur in ionad PHPUnit?**  
De réir a dhoiciméadaithe féin tá Pest tógtha ar PHPUnit agus tairgeann sé nodaireacht níos giorra. Is féidir tástálacha PHPUnit atá ann cheana a thiontú den chuid is mó go huathoibríoch leis an breiseán Drift, ach ní mór cuid acu a oiriúnú de láimh.

**An gcabhraíonn tástálacha i gcoinne leochaileachtaí slándála i PHP féin?**  
Ní go díreach. Tá leochaileachtaí ar nós PHP2Shell san ateangaire agus dúntar iad le nuashonrú PHP. Cinntíonn tástálacha, áfach, gur féidir leat an nuashonrú sin a shuiteáil go tapa, gan eagla roimh earráidí gan tabhairt faoi deara san fheidhmchlár.

**Cé mhéad tástáil atá go leor?**  
Níl aon uimhir sheasta ann. Is ciallmhar na bealaí a bhfuil tábhacht ghnó leo a chlúdach ar dtús: logáil isteach, ordú, foirmeacha, comhéadain. Ina dhiaidh sin fásann clúdach na dtástálacha le gach athrú agus le gach earráid a cheartaítear.

## Foinsí

- [PHPUnit](https://phpunit.de/)
- [Pest](https://pestphp.com/)
- [php.net: Leaganacha PHP tacaithe](https://www.php.net/supported-versions.php)
