Мне нужна помощь, потому что я не эксперт в PHPUNIT.PHPUNIT - возвращает тот же экземпляр экземпляра класса I 2 раза
Я чувствую, что когда я создаю экземпляр моего валидатора дважды в моем тестовом классе, что PHPUnit игнорирует 2-й экземпляр ...
Вот мой код: `` `PHP
<?php
namespace Tests\Validation;
use PHPUnit\Framework\TestCase;
use Validation\Validator;
class ValidatorTest extends TestCase
{
public function testIsNotValid()
{
$_POST['input_test'] = '1';
$validator = new Validator();
$validator->rules([
'input_test' => [
'alpha '=> true, // "$_POST['input_test']" must be alpha
],
]);
// "isValid()" must return "false", and PHPUNIT returns "false"
$this->assertFalse($validator->isValid());
// "count($validator->getErrors())" Must return "1", and PHPUNIT returns "1"
$this->assertEquals(1, count($validator->getErrors()));
}
public function testIsValid()
{
$_POST['input_test'] = 'aaa';
$validator = new Validator();
$validator->rules([
'input_test' => [
'alpha' => true, // "$_POST['input_test']" must be alpha
],
]);
// "isValid()" must return "true", but PHPUNIT returns "false"
$this->assertTrue($validator->isValid());
// "count($validator->getErrors())" must return "0", but PHPUNIT returns "1"
$this->assertEquals(0, count($validator->getErrors()));
}
}
` ` ` Так что мой тест" testIsValid() "работает неправильно. С другой стороны, если я удалю тест «testIsNotValid()», тест «testIsValid()» начнет работать ...
У кого-нибудь есть идея?
спасибо.
Пожалуйста, предоставьте дополнительную информацию. Какой результат вы получаете и чего вы ожидаете? Можете ли вы показать код методов 'rules()' и 'isValid()'? – Timurib
Я опубликовал методы в своем втором ответе. То, что я получаю и что я ожидаю, объясняется в комментариях к моему 1-му ответу. спасибо – stephweb