Receber por email
← Voltar para o catálogo

magento-testing

Write tests for Magento 2 — PHPUnit unit tests, integration tests, MFTF functional tests, and API tests. Use when implementing test coverage for modules, debugging, or setting up CI/CD test pipelines.

34estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add OrcaQubits/agentic-commerce-skills-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/magento-testing/svg)](https://www.skillteca.com.br/skills/magento-testing)

Skills relacionadas

Ver todas de DevOps e Infra →

Alerta por categoria

Receba novas skills de DevOps e Infra toda segunda

1 email curto, só com as skills novas de DevOps e Infra. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Magento 2 Testing

Before writing code

Fetch live docs:

  1. Web-search site:developer.adobe.com commerce testing for testing overview
  2. Fetch https://developer.adobe.com/commerce/testing/functional-testing-framework/ for MFTF guide
  3. Web-search site:developer.adobe.com commerce php development test for unit/integration test patterns

Testing Layers

Unit Tests

Purpose: Test individual classes in isolation.

  • Location: Test/Unit/ within the module
  • Config: dev/tests/unit/phpunit.xml.dist
  • Run: vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/VendorName/ModuleName/Test/Unit/
  • Mock all dependencies with PHPUnit mocks or createMock()
  • No Magento bootstrap — pure PHP unit testing
  • Fast execution, no database or filesystem dependencies

Integration Tests

Purpose: Test module interactions with the Magento framework.

  • Location: Test/Integration/ or dev/tests/integration/
  • Config: dev/tests/integration/phpunit.xml.dist
  • Run: vendor/bin/phpunit -c dev/tests/integration/phpunit.xml.dist
  • Uses Magento application bootstrap — real DI, real database
  • @magentoDbIsolation enabled — rolls back DB changes after each test
  • @magentoAppArea — sets the application area (frontend, adminhtml)
  • @magentoConfigFixture — sets config values for the test
  • @magentoDataFixture — loads test data
  • Slower but tests real interactions

MFTF (Magento Functional Testing Framework)

Purpose: End-to-end browser tests.

  • XML-based test definitions (not PHP)
  • Converts to Codeception PHP tests
  • Uses Selenium WebDriver for browser automation
  • Allure reporting for results
  • Location: Test/Mftf/Test/, Test/Mftf/ActionGroup/, Test/Mftf/Page/, Test/Mftf/Section/
  • Run: vendor/bin/mftf run:test <TestName>
  • Tests complete user workflows (add to cart, checkout, admin operations)

API Functional Tests

Purpose: Test REST and SOAP API endpoints.

  • Location: dev/tests/api-functional/
  • Config: dev/tests/api-functional/phpunit_rest.xml.dist
  • Tests API request/response contracts
  • Verifies authentication, authorization, and data integrity

Static Tests

Purpose: Code quality and standards.

  • Location: dev/tests/static/
  • Checks: coding standards (PHP_CodeSniffer + Magento standard), dependency validation, copyright headers
  • Run: vendor/bin/phpunit -c dev/tests/static/phpunit.xml.dist

Key Testing Patterns

Mocking in Magento

  • Use $this->createMock(ClassName::class) for dependencies
  • $mock->expects($this->once())->method('getById')->willReturn($entity)
  • For ObjectManager-dependent classes: use ObjectManagerHelper from test framework

Test Data Fixtures

Integration tests use fixtures to set up test state:

  • @magentoDataFixture annotation points to a fixture file
  • Fixture files create entities (products, customers, orders)
  • @magentoDbIsolation rolls back after test

Testing Plugins

Unit test plugin classes independently — call the plugin method with a mock subject and verify behavior.

Testing Observers

Unit test observer's execute() method with a mocked Observer/Event object.

Best Practices

  • Write unit tests for all business logic classes
  • Use integration tests for DI wiring and database interaction verification
  • Use MFTF for critical user journeys (checkout, customer registration)
  • Run static tests in CI/CD to enforce coding standards
  • Use @magentoDbIsolation to prevent test pollution
  • Keep unit tests fast — mock all external dependencies
  • Name test methods descriptively: testSaveThrowsExceptionWhenNameIsEmpty()

Fetch the testing documentation for exact annotations, fixture patterns, and MFTF XML schema before writing tests.

Compartilhar X LinkedIn