2016-08-10 4 views
2

私はそれがこれを使用して文字列だかどうかをテストしようとしてい結果がPHPUnitの電子メールであると主張するにはどうすればよいですか?

[email protected]。)結果は電子メールであることをテストできるようにしたいと思います:

$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

簡単かつきれいな解決策は、場合にEメールを働いていない:)

+0

をお楽しみください 正しいフォーマットである、私は電子メールの値を戻りました。 documentataから: "フィルタリングされたデータを返します。または、フィルタが失敗した場合はFALSEを返します。" エラー: '[email protected]'がtrueであることをアサートできませんでした。 –

+0

申し訳ありませんが、私のせいです。私は応答を編集します。 –

関連する問題