Classe E-mail:
<?php
namespace Limpa\Arquitetura;
class Email
{
private string $endereco;
public function __construct(string $endereco)
{
if (filter_var($endereco, FILTER_SANITIZE_EMAIL) === false) {
throw new \InvalidArgumentException("Endereço de e-mail inválido!");
}
$this->endereco = $endereco;
}
public function __toString(): string
{
return $this->endereco;
}
}
Classe EmailTest:
<?php
use Limpa\Arquitetura\Email;
use PHPUnit\Framework\TestCase;
class EmailTest extends TestCase
{
public function testEmailFormatoInvalidoLancaErro()
{
$this->expectException(\InvalidArgumentException::class);
new Email("um errado");
}
public function testEmailFormatoValidoComoString()
{
$email = new Email("exemplo@exemplo.com");
$this->assertSame("exemplo@exemplo.com", (string) $email);
}
}
Estou obtendo esse erro no primeiro teste:
Failed asserting that exception of type "InvalidArgumentException" is thrown.
O segundo teste está sendo executado corretamente, não entendi o que pode estar acontecendo.
O estranho é que é feito um teste semelhante para o CPF e o mesmo passa tranquilamente!