Phpunit: PHPUnit\Framework\TestCase::__constructor は、使用することを意図しているにもかかわらず、内部としてマークされています

作成日 2019年12月06日  ·  3コメント  ·  ソース: sebastianbergmann/phpunit

| Q | あ
| --------------------| ---------------
| PHPUnitのバージョン | 8.5.0
| PHP バージョン | 7.3.12
| 設置方法 | PHAR

概要

メソッドPHPUnit\Framework\TestCase::__constructorは、次のメッセージで内部としてマークされています。

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

現在の行動

メソッドは内部としてマークされており、BC でカバ​​ーされていないことを示しているように見えます。

しかし、それはあなた自身のスイートでTestCaseを拡張する高速で使用されることを意図しているため、実際には内部ではありません。

テストで Psalm を実行すると、内部メソッドの使用が報告されます。

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

再現方法

PHPUnit 8.5.0 に裏付けられたテストで Psalm を実行します。

予想される行動

テストで使用することを目的としたメソッドは、内部としてマークしないでください。

typbug

全てのコメント3件

ちょうど別のものを見つけました:

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

PHPUnit\Framework\TestCase::__constructor()が独自のテストで使用されることを意図しているという考えがどこから得られるかわかりません。

直接は使用しませんが、 TestCase拡張するだけで ctor が呼び出されます。 したがって、基本的に、そこにあるすべてのテストケースは、デフォルトで内部メソッドを使用しています。

このページは役に立ちましたか?
0 / 5 - 0 評価