PHPUNIT-返回类I实例化2次的同一实例

PHPUNIT-返回类I实例化2次的同一实例,php,phpunit,Php,Phpunit,我需要帮助,因为我不是PHPUNIT的专家 我觉得当我在测试类中两次实例化验证器时,PHPUNIT会忽略第二个实例 这是我的密码: ```php 谢谢,这里是我的验证器类: <?php class Validator implements ValidatorInterface { /** * Name du input * * @var string */ private $input; /** * Valeur

我需要帮助,因为我不是PHPUNIT的专家

我觉得当我在测试类中两次实例化验证器时,PHPUNIT会忽略第二个实例

这是我的密码: ```php


谢谢,这里是我的验证器类:

<?php

class Validator implements ValidatorInterface
{
    /**
     * Name du input
     *
     * @var string
     */
    private $input;

    /**
     * Valeur des rules qu'on passe à un input
     *
     * @var mixed
     */
    private $value;

    /**
     * POST ou GET - Sera à POST par defaut
     *
     * @var mixed
     */
    private $requestMethod;

    /**
     * Contiendra les éventuels erreurs
     *
     * @var array
     */
    private $errors = [];

    /**
     * Validator constructor.
     *
     * @param null $requestMethod
     */
    public function __construct()
    {        
        $this->requestMethod = $_POST;
    }

    /**
     * Vérification des données soumises
     *
     * @param array $array
     */
    public function rules(array $array)
    {
        foreach ($array as $input => $rules) {
            $this->input = $input;

            if (is_array($rules)) {                
                foreach ($rules as $rule => $value) {
                    if ($rule != 'label') {
                        if ($rule == 'required' || $rule == 'file' || isset($this->requestMethod[$this->input])) {
                            $this->value = $value;

                            $this->callRule($rule);
                        }
                    }
                }
            }
        }
    }

    /**
     * Appeler la règle de validation
     *
     * @param string $rule
     */
    protected function callRule(string $rule)
    {
        $methodVerify = 'verify'.Str::convertSnakeCaseToCamelCase($rule);

        if (method_exists($this, $methodVerify)) {
            $this->$methodVerify();
        }
    }

    /**
     * Vérifier que valeur entrée dans le champ est bien alphabétique
     */
    private function verifyAlpha()
    {
        if ($this->value === true && !preg_match(self::REGEX_ALPHA, $this->requestMethod[$this->input])) {
            $this->errors[$this->input] = $this->pushError('alpha');
        }
    }

    /**
     * @return bool - True si formulaire soumis est valide, false si pas valide
     */
    public function isValid(): bool
    {
        return count($this->errors) === 0;
    }
}

请提供更多信息。你得到了什么样的产出,你期望得到什么?你能展示
rules()
isValid()
方法的代码吗?我在第二个答案中公布了这些方法。我的第一个答案的评论中解释了我得到的和我期望得到的。非常感谢。
<?php

class Validator implements ValidatorInterface
{
    /**
     * Name du input
     *
     * @var string
     */
    private $input;

    /**
     * Valeur des rules qu'on passe à un input
     *
     * @var mixed
     */
    private $value;

    /**
     * POST ou GET - Sera à POST par defaut
     *
     * @var mixed
     */
    private $requestMethod;

    /**
     * Contiendra les éventuels erreurs
     *
     * @var array
     */
    private $errors = [];

    /**
     * Validator constructor.
     *
     * @param null $requestMethod
     */
    public function __construct()
    {        
        $this->requestMethod = $_POST;
    }

    /**
     * Vérification des données soumises
     *
     * @param array $array
     */
    public function rules(array $array)
    {
        foreach ($array as $input => $rules) {
            $this->input = $input;

            if (is_array($rules)) {                
                foreach ($rules as $rule => $value) {
                    if ($rule != 'label') {
                        if ($rule == 'required' || $rule == 'file' || isset($this->requestMethod[$this->input])) {
                            $this->value = $value;

                            $this->callRule($rule);
                        }
                    }
                }
            }
        }
    }

    /**
     * Appeler la règle de validation
     *
     * @param string $rule
     */
    protected function callRule(string $rule)
    {
        $methodVerify = 'verify'.Str::convertSnakeCaseToCamelCase($rule);

        if (method_exists($this, $methodVerify)) {
            $this->$methodVerify();
        }
    }

    /**
     * Vérifier que valeur entrée dans le champ est bien alphabétique
     */
    private function verifyAlpha()
    {
        if ($this->value === true && !preg_match(self::REGEX_ALPHA, $this->requestMethod[$this->input])) {
            $this->errors[$this->input] = $this->pushError('alpha');
        }
    }

    /**
     * @return bool - True si formulaire soumis est valide, false si pas valide
     */
    public function isValid(): bool
    {
        return count($this->errors) === 0;
    }
}