2016-08-10 3 views
2

Я хотел бы быть в состоянии проверить, что результатом является электронная почта ([email protected] ..)Как утверждать, что результатом является электронное письмо в PHPUnit?

Я попытался проверить, если это строка с помощью этого:

$this->assertInternalType('string', $myExpectedEmail); 

Но я думаю, это не очень точно ... Я попытался это:

$this->assertInternalType('email', $myExpectedEmail); 

Но я получаю эту ошибку:

Type specified for PHPUnit_Framework_Constraint_IsType <email> is not a valid type. 

Любая идея/лучшая практика проверки формата электронной почты в PHPunit?

ответ

3

Вы можете использовать регулярное выражение для проверки адреса электронной почты. Что-то вроде:

$this->assertRegExp('/^.+\@\S+\.\S+$/', $myExpectedEmail); 

надежде, что это поможет

6

Если Вы хотите проверить, если результат один и тот же адрес электронной почты, как и ожидалось (сравнение строк) Вы должны использовать:

$this->assertSame($expectedEmailString, $emailToTest); 

Если Вам нужно проверить если строка является допустимым по электронной почте Вы можете использовать:

$this->assertSame($emailToTest, filter_var($emailToTest, FILTER_VALIDATE_EMAIL)); 

http://php.net/manual/en/function.filter-var.php

http://php.net/manual/en/filter.filters.validate.php

Простое и чистое решение Наслаждайтесь :)

+0

это не работает в случае электронной почты в правильном формате, я вернулся значение электронной почты. Из документа: «Возвращает отфильтрованные данные или FALSE, если фильтр не работает». Ошибка: не удалось утверждать, что «[email protected]» является истинным. –

+0

Извините, я виноват. Я отредактирую ответ. –

Смежные вопросы