Phpunit: PHPUnit \ Framework \ TestCase :: __ constructor marcado como interno aunque esté destinado a ser utilizado

Creado en 6 dic. 2019  ·  3Comentarios  ·  Fuente: sebastianbergmann/phpunit

| Q | A
| -------------------- | ---------------
| Versión PHPUnit | 8.5.0
| Versión PHP | 7.3.12
| Método de instalación | PHAR

Resumen

El método PHPUnit\Framework\TestCase::__constructor se marca como interno con este mensaje:

<strong i="13">@internal</strong> This method is not covered by the backward compatibility promise for PHPUnit

Comportamiento actual

El método está marcado como interno, aparentemente solo para indicar que no está cubierto por BC.

Pero en realidad no es interno, ya que está destinado a ser utilizado por el rápido que extienda TestCase en sus propias suites.

El uso de métodos internos se informa ejecutando Psalm en sus pruebas:

ERROR: InternalMethod - tests/Xezilaires/Bridge/PhpSpreadsheet/RowIteratorTest.php:28:37 - The method PHPUnit\Framework\TestCase::__construct has been marked as internal
final class RowIteratorTest extends TestCase

Como reproducir

Ejecute Psalm en sus pruebas respaldadas por PHPUnit 8.5.0.

Comportamiento esperado

Los métodos que están destinados a ser utilizados por las pruebas no deben marcarse como internos.

typbug

Todos 3 comentarios

Acabo de encontrar otro:

ERROR: InternalMethod - tests/Xezilaires/SpreadsheetIteratorTest.php:123:30 - The method PHPUnit\Framework\MockObject\Builder\InvocationMocker::willReturn has been marked as internal
                    $mocker->willReturn($spec['return']);

No sé de dónde sacas la idea de que PHPUnit\Framework\TestCase::__constructor() está destinado a ser utilizado en tus propias pruebas.

No se usa directamente, pero el ctor se invoca simplemente extendiendo TestCase , ¿no? Entonces, básicamente, cualquier caso de prueba utiliza un método interno de forma predeterminada.

¿Fue útil esta página
0 / 5 - 0 calificaciones