PHPユニットを使用して、アドオンで動作するように作成したAPIクラスをテストしようとしていますWordPressのプラグイン重力フォーム。このクラスは、wp_remote_request()などのWordPressのいくつかの関数に依存しています。WordPress(wp-load.php)の外でWordPressを使用しています: "ヘッダー情報を変更できません - 既に送信されたヘッダー"
これらのWordPressの依存関係へのアクセス権を持っているために、私が使用して私のPHPユニットテストクラス内のwp-load.phpを要求しようとしている:私はこれをしようとすると、私が得る、しかし
define('WP_USE_THEMES', false);
require '../../../wp-load.php';
をPHPUnitのを実行している時に、私の端末で出力以下:
WP-含まれて/のfunctions.phpファイルを見てみるとCannot modify header information - headers already sent by (output started at phar:///usr/local/Cellar/phpunit/6.4.2/libexec/phpunit-6.4.2.phar/phpunit/Util/Printer.php:112) ../wp-includes/functions.php:3760 ../wp-includes/load.php:422 ../wp-settings.php:110 ../wp-config.php:228 ../wp-load.php:37 ../wp-content/plugins/gravity-dpo/tests/TestCaseAddon.php:37
、私はエラーを引き起こすものである、()関数dead_db内ライン3760で以下のクラスを見ることができます:
header('Content-Type: text/html; charset=utf-8');
確かに、wp-load.phpを必要とすることは些細なことで、PHPユニットを使っていくつかのWordPressの依存関係をテストできますか?私はここで間違っていることを指摘してくれます。私は、自分のAPIクラスから1つか2つの関数をテストしたいので、完全な本格的なWordPress単体テストの作成を避けようとしています。
私は実際にphpunitに慣れていませんが、なぜこれらの機能を嘲笑しませんか? – janh
それはオプションですが、私がそれをやろうとしているようにこれが簡単に働くべきではありませんか? –
また、実際のGETリクエストの結果に基づいてテストする必要があるので、WordPressの依存関係を動作させるよりも、これらのメソッドを擬似するほうが簡単ではないと私は確信していません。 –