Платформа PHPUnit продолжает возвращать это сообщение
tests \ IWPNoncesTest :: testCreateNonce Ошибка: класс 'tests \ IWPNonces' не найден
C: \ Users \ user pc \ Desktop \ inpsyde \ tests \ IWPNoncesTest. php: 25
Для начала, я новичок в модульном тестировании, и я действительно не знаю, как это работает. Я попытался следовать официальному руководству на первой странице веб-сайта [https://phpunit.de/getting-started/phpunit-8.html] [1] , но это тоже не работает, так как он также жалуется, что электронная почта
класс не выходит или около того.
Мой вопрос: как мне работать с платформой PHPUnit? И лично, это шаги, которые я уже сделал 1. Создайте
phpunit. xml
файл в каталоге root, и это код там
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="vendor/autoload.php"
>
<testsuites>
<testsuite name="WPNonces Test Suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>./classes</directory>
</whitelist>
</filter>
</phpunit>
Затем создайте папку классов, в которой находится основной код, и в папке классов: I
createIWPNonces. php
, и это код там
<?php
declare(strict_types=1);
namespace IWPNoncesFunctions;
class IWPNonces{
public function IWPCreateNonce(string $action): string {
return wp_create_nonce($action);
}
public function IWPNonceURL(string $url, string $action): string {
return wp_nonce_url($url, $action);
}
public function IWPNonceField(string $action, string $field): string {
return wp_nonce_field($action, $field);
}
public function IWPVerifyNonce(string $action, string $field, string $type): string{
switch($type){
if('field' == $type){
if(!isset($_REQUEST['field']) || !wp_verify_nonce(['field'], 'action')){
return false;
}else{
return wp_verify_nonce(['field'], 'action');
}
}
break;
if('url' == $type){
if ( ! empty( $_REQUEST ) && check_admin_referer( 'action', 'field' ) ){
return check_admin_referer( 'action', 'field' );
}
}
break;
if('ajax' == $type){
return check_ajax_referer('$action', $security);
}
break;
default:
return 'Error, the type name does not exist in wp nonce verifier. Please, use a valid verifier';
break;
}
}
public function IWPVerifyURLNonce(string $url, string $action): string {
if ( ! empty( $_REQUEST ) && check_admin_referer( 'action', 'field' ) ){
return check_admin_referer( 'action', 'field' );
}
}
public function IWPVerifyFieldNonce(string $action, string $field): string {
if(!isset($_REQUEST['field']) || !wp_verify_nonce(['field'], 'action')){
return false;
}else{
return wp_verify_nonce(['field'], 'action');
}
}
public function IWPVerifyAjaxNonce(string $url, string $action): string {
if('ajax' == $type){
return check_ajax_referer('$action', $security);
}
}
}
После этого я создал папку
tests / IWPNoncesTest
, в которой находится сценарий, который будет проверять PHPUnit, и этот сценарий написан для тест
<?php
declare(strict_types=1);
// Created by : Gbenga Ogunbule
// Location : Ijebu Ode
// Date : 18/07/19
// Time : 21:44
namespace tests;
use IWPNoncesFunctions;
use PHPUnit\Framework\TestCase;;
class IWPNoncesTest extends TestCase{
/*private $createNonce;
public function setUp() {
$this->createNonce = new IWPNonces('action');
#$this->createNonce = IWPCreateNonce('action');
}*/
public function testCreateNonce(){
$createNonce = new IWPNonces();
$createNonce->IWPCreateNonce('action');
$this->assertSame(
'action',
$this->createNonce,
'The verify Nonce(WPNonce) is different from the one created above'
);
}
/*public function testVerifyURLNonce(){
$verifyURLNonce = new IWPNonces();
$verifyURLNonce->IWPVerifyURLNonce('localhost/index.php', 'action');
$this->assertSame('action', $verifyURLNonce, 'Verified not');
}
public function testVerifyFieldNonce(){
$verifyFieldNonce = new IWPNonces();
$verifyFieldNonce->IWPVerifyFieldNonce('action', 'action');
$this->assertSame('action', $verifyFieldNonce, 'Failed');
}
public function testVerifyAjaxNonce(){
$verifyAjaxNonce = new IWPNonces();
$verifyAjaxNonce->IWPVerifyFieldNonce('localhost/index.php', 'action');
$this->assertSame('action', $verifyAjaxNonce, 'Failure');
}*/
}
Внутри
composer. json
У меня есть этот
"autoload": {
"psr-4": {
"WPNoncesFunction\\": "classes",
"tests\\": "tests"
}
},