PHP 단위를 사용하여 내가 추가 기능으로 작업하도록 작성한 API 클래스를 테스트하려고합니다. WordPress 플러그인 Gravity Forms. 이 클래스는 wp_remote_request()와 같은 WordPress의 여러 함수에 의존합니다. 나는이 때, 나는를 얻을WordPress (wp-load.php) 외부에서 WordPress 사용 : "헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더"
define('WP_USE_THEMES', false);
require '../../../wp-load.php';
을 그러나 이러한 워드 프레스 종속성에 액세스하기 위해
, 나는 사용하여 내 PHP 단위 테스트 클래스에서 WP-load.php을 요구하기 위해 노력하고있어 실행 phpunit을에 내 터미널에서 출력을 다음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
상기 찾고 WP-포함/functions.php 파일, 나는 오류를 발생 무엇 인() 함수 dead_db 내에서 라인 3760에 다음 클래스를 볼 수 있습니다 :
header('Content-Type: text/html; charset=utf-8');
wp-load.php가 필요합니다. PHP 단위를 사용하여 WordPress 의존성을 테스트 할 수 있습니까? 나는 여기서 내가 잘못하고있는 것에 대해 어떤 조언을 해줄 것이다. 난 그냥 내 API 클래스에서 하나 또는 두 개의 기능을 테스트하기 때문에 설정을 완벽하게 본격적인 워드 프레스 단위를 만드는 것을 피하기 위해 노력하고있어.
저는 phpunit에 대해 경험이 없지만 왜이 기능들을 모의하지 않습니까? – janh
그게 옵션이지만, 내가 이것을하려는 방식으로 작동하는 것이 간단하지 않아야합니까? –
또한 실제 GET 요청의 결과를 기반으로 테스트해야하므로 WordPress 종속성을 작동시키는 것보다 이러한 방법을 모의하는 것이 더 쉽다고 확신하지 않습니다 –