Report setUp()/tearDown() overrides that don't call the parent

Cerrado
#179 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #215 de @alies-dev — fusionado

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
php
Área
testing

Línea de trabajo

Read the issue's example and the linked ShouldCallParentMethodsRule in phpstan-phpunit, then locate the plugin's afterClassLikeAnalysis handlers and their tests. Add coverage for the four lifecycle methods, including overrides of non-TestCase declarations and missing top-level parent calls. Done means the plugin reports the missing call and its tests cover the stated cases; an open pull request is already linked.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

When a test case extends a base test case that has its own setUp()/tearDown(), forgetting parent::setUp() silently skips the base fixture:

abstract class DatabaseTestCase extends TestCase
{
    protected function setUp(): void { $this->connection = Connection::open(); }
}

final class InvoiceRepositoryTest extends DatabaseTestCase
{
    protected function setUp(): void
    {
        $this->repository = new InvoiceRepository($this->connection); // parent::setUp() missing
    }
}

phpstan-phpunit reports this (ShouldCallParentMethodsRule). The rule only applies when the overridden method is not TestCase's own empty one.

Idea: in afterClassLikeAnalysis, for setUp, tearDown, setUpBeforeClass and tearDownAfterClass overriding a non-TestCase declaration, look for a top-level parent::<method>() call and emit a plugin issue otherwise. Roughly 60 lines with tests.

Idea borrowed from phpstan/phpstan-phpunit.

Lenguaje dominante
Gherkin
Estrellas
79
Forks
38
Merge medio
3 h 54 min
PR fusionados (30 d)
68

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de psalm/psalm-plugin-phpunit

Todos los issues de psalm/psalm-plugin-phpunit

Issues similares

Más issues de Testing & QA

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.