0

重複の可能性:
PhpUnit プライベート メソッドのテスト

単体テストでは、プライベート メソッドを呼び出して、フィクスチャを特定の状態に設定する必要があります。一方で、このメソッドは公開したくありません。どうすればいいですか?

4

2 に答える 2

4

これらの関数を保護し、テスト目的で派生クラスを作成してみませんか? そのクラスには、さまざまな変数などを初期化できるテスト用のパブリック関数を含めることができます。

于 2012-12-01T14:42:36.173 に答える
1

プライベート メソッドの単体テストは一般的にはお勧めできませんが、どうしてもやりたい場合は、リフレクションを使用することをお勧めします。これはそれを行う必要があります:

$reflection_class = new ReflectionClass($object_under_test);
$method = $reflection_class->getMethod('nameOfMethod');
$method->setAccessible(true);
$method->invoke($object_under_test, $param);

HTH

于 2012-12-01T14:47:17.903 に答える