我如何断言结果是 PHPUnit 中的电子邮件?
How do I assert the result is an email in PHPUnit?
我希望能够测试结果是一封电子邮件 (myMail@provider.com ..)
我试过用这个测试它是否是字符串:
$this->assertInternalType('string', $myExpectedEmail);
但我认为它不是很准确...我试过这个:
$this->assertInternalType('email', $myExpectedEmail);
但是我得到这个错误:
Type specified for PHPUnit_Framework_Constraint_IsType <email> is not a valid type.
任何 idea/best 如何在 PHPunit 中测试电子邮件格式的实践?
您可以使用正则表达式来验证电子邮件地址。类似于:
$this->assertRegExp('/^.+\@\S+\.\S+$/', $myExpectedEmail);
希望对您有所帮助
如果您想检查结果是否与预期的电子邮件相同(字符串比较)您应该使用:
$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
简单干净的解决方案
享受:)
我希望能够测试结果是一封电子邮件 (myMail@provider.com ..)
我试过用这个测试它是否是字符串:
$this->assertInternalType('string', $myExpectedEmail);
但我认为它不是很准确...我试过这个:
$this->assertInternalType('email', $myExpectedEmail);
但是我得到这个错误:
Type specified for PHPUnit_Framework_Constraint_IsType <email> is not a valid type.
任何 idea/best 如何在 PHPunit 中测试电子邮件格式的实践?
您可以使用正则表达式来验证电子邮件地址。类似于:
$this->assertRegExp('/^.+\@\S+\.\S+$/', $myExpectedEmail);
希望对您有所帮助
如果您想检查结果是否与预期的电子邮件相同(字符串比较)您应该使用:
$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
简单干净的解决方案 享受:)