PHP 7 のリリースにより、開発者は多くの新機能と改良点を目にすることができます。その中でも、Expectations 構文は最も人気のある機能の 1 つです。これにより、アサーションの記述が大幅に簡素化され、コードがより読みやすく、保守しやすくなります。この記事では、Expectations 構文の基本的な使用法を紹介し、例を通じてその利点を示します。
PHP では、コード内の条件を検証するためにアサーションが使用されます。従来のアサーションは通常、条件式をパラメータとして受け取り、条件が満たされない場合にエラーをスローするassert()関数を使用します。この書き方は長くなり、直感的ではありません。
Expectations 構文では、expect() 関数によるアサーションの記述が簡素化されます。 Expect() を使用すると、値または式が期待どおりであるかどうかを検証できます。アサーションが失敗すると、expect() はエラー情報とアサーション失敗の場所を含む例外をスローします。
以下では、特定の例を使用して、Expectations 構文を使用してアサーションを改善する方法を示します。
2 つの数値を加算して結果を返す関数 add() があるとします。 Expectations 構文を使用すると、関数の戻り値が期待どおりであることを検証できます。
function add($a, $b) {
return $a + $b;
}
// 使用Expectations構文アサーションadd()関数の戻り値が3
expect(add(1, 2))->toBe(3);この例では、expect() 関数は、add(1, 2) の戻り値が 3 に等しいかどうかをアサートします。アサーションが失敗した場合は、詳細な AssertionException がスローされます。
Expectations 構文は配列アサーションでも機能します。次の例は、toBe() と toContain() を使用して配列の内容を確認する方法を示しています。
$data = ['apple', 'banana', 'orange'];
// 配列をアサートする$data長さは3
expect($data)->toHaveLength(3);
// 配列をアサートする$data含まれています'banana'
expect($data)->toContain('banana');配列の長さと含まれる要素は、toHaveLength() 関数と toContain() 関数を通じて簡単に検証できます。
組み込みのアサーション関数に加えて、プロジェクト固有のニーズに合わせてアサーション関数をカスタマイズすることもできます。
function isEven($num) {
return $num % 2 == 0;
}
// 数値をアサートする6偶数です
expect(6)->toBeTrue(isEven);この例では、数値が偶数であるかどうかを判断する isEven() 関数を定義し、次に toBeTrue() を使用して数値 6 が偶数であるかどうかをアサートします。
PHP 7 の Expectations 構文は、より簡潔で直感的なアサート方法を提供します。開発者は、expect() 関数を使用して、可読性が高く、保守が容易なコードを作成できます。上記の例は、Expectations 構文をすばやく理解して適用するのに役立ち、PHP テスト コードを最適化するための強力なツールです。