Magento 2 suportă teste unitare, de integrare, funcționale și statice, organizate sub dev/tests/. Iată principiile de bază pentru a scrie un test.
Notă: versiunile actuale folosesc PHPUnit 9/10, deci clasele de test extind
PHPUnit\Framework\TestCase(nu vechiulPHPUnit_Framework_TestCase), iar metodelesetUp()/tearDown()au tipul de return: void.
Test unitar
Plasează testele în app/code/<Vendor>/<Module>/Test/Unit/. Un test unitar izolează o clasă și își creează dependențele ca mock-uri (nu folosește baza de date). Exemplu de schelet:
namespace Vendor\Module\Test\Unit;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
protected function setUp(): void
{
// inițializează obiectul testat cu dependențe mock
}
public function testSomething(): void
{
$this->assertTrue(true);
}
}
Test de integrare
Plasează testele în Test/Integration/. Acestea rulează pe o instanță Magento de test și necesită o bază de date dedicată, configurată în dev/tests/integration/etc/install-config-mysql.php. Evită folosirea directă a ObjectManager::getInstance() în cod de producție; în teste de integrare este acceptabil prin framework-ul de testare.
Pentru codul complet și exemple actualizate, consultă ghidul de testare Adobe Commerce.