1

私はTDDとphpunitの両方が初めてです。

実行方法に基づいて分岐するコードをテストしています。

if (PHP_SAPI!='cli') {
    header('HTTP/1.1 '.$statusCode);
}

できるだけ多くのコード カバレッジを取得したいのですが、この部分をテストできないようです (phpunit はコマンド ライン インターフェイスを介してテストしているため)。

これを回避する方法はありますか?または、この部分をテストする別の方法はありますか?

私はカールか何かをしようと考えましたが、テストが実行される場所は、それをテストするユーザーのシステムに関連しています。

4

2 に答える 2

0

Mockery パッケージを使用している場合、保護されたメソッドをモックすることはできません。これが開発者の1人のコメントです->モック化された保護されたメソッドの呼び出し

php_sapi_nameただし、ネイティブ関数を使用すると、有効なテストを作成できます

次に、テスト内 (同じ名前空間内) で同じ名前のダミー関数を作成して、任意の値を返すことができます。

また

PHPUnit の拡張機能を使用して静的関数とネイティブ関数をモックする -> phpunit-mockfunction

于 2014-12-17T20:37:19.417 に答える