Phpunit: PHPUnit \ Framework \ TestCase :: __ Konstruktor, der als intern markiert ist, obwohl er verwendet werden soll

Erstellt am 6. Dez. 2019  ·  3Kommentare  ·  Quelle: sebastianbergmann/phpunit

| Q | EIN
| -------------------- | --------------
| PHPUnit-Version | 8.5.0
| PHP-Version | 7.3.12
| Installationsmethode | PHAR

Zusammenfassung

Methode PHPUnit\Framework\TestCase::__constructor wird mit dieser Meldung als intern gekennzeichnet:

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

Aktuelles Verhalten

Methode ist als intern markiert, anscheinend nur um zu signalisieren, dass sie nicht von BC abgedeckt wird.

Aber es ist nicht wirklich intern, da es für die schnelle Erweiterung von TestCase in Ihren eigenen Suiten gedacht ist.

Die Verwendung interner Methoden wird gemeldet, indem Sie Psalm bei Ihren Tests ausführen:

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

So reproduzieren Sie

Führen Sie Psalm auf Ihren Tests aus, die von PHPUnit 8.5.0 unterstützt werden.

Erwartetes Verhalten

Methode(n), die von den Tests verwendet werden sollen, sollten nicht als intern gekennzeichnet werden.

typbug

Alle 3 Kommentare

Habe gerade noch einen gefunden:

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']);

Ich weiß nicht, woher Sie die Idee haben, dass PHPUnit\Framework\TestCase::__constructor() in Ihren eigenen Tests verwendet werden soll.

Es wird nicht direkt verwendet, aber der ctor wird einfach durch Erweitern von TestCase aufgerufen, nicht wahr? Im Grunde verwendet jeder Testfall standardmäßig eine interne Methode.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen