PHPPECTECは、行動主導型開発(BDD)の概念に基づいたPHPテストフレームワークです。開発者がPHPPECTECを使用してテストを作成する場合、最初にクラスの動作を説明し、次にこれらの動作がテストケースを通じて正しく実装されているかどうかを確認する必要があります。従来の単体テストと比較して、PHPPectecはコードの動作により多くの注意を払い、コードの実行ロジックをより直感的に反映し、それにより開発効率とコードの品質を改善します。
PHPPECTECをインストールする前に、環境が次の条件を満たしていることを確認してください。
PHPバージョンは7.0を超える必要があります
作曲家がインストールされました
Composerを介してPHPTSPECをインストールするのは非常に簡単です。
<span class="fun">作曲家にはPHPTSPEC/PHPTSPECが必要です</span>
インストールが完了したら、ベンダー/bin/phptpectecを実行してphppectecを使用できます。
まず、クラスの説明ファイル(仕様)を作成する必要があります。
// ファイル名: MyStringSpec.php
use PhpSpec\ObjectBehavior;
<p>class MyStringSpec extends ObjectBehavior<br>
{<br>
function it_is_initializable()<br>
{<br>
$this->shouldHaveType(MyString::class);<br>
}<br>
}<br>
この例では、 ObjectBehaviorクラスを継承することにより、PHPPECTが提供するテスト方法を呼び出してコード動作を確認できます。ここでのIT_IS_INITIALIZABLEメソッドは、myStringクラスを正しくインスタンス化できるかどうかをテストします。
ベンダー/bin/phptpc runコマンドを実行した後、テストが通過した場合、端末は次のようなものを表示します。
MyString
? is initializable
1 specs
1 example
1 assertion
これは、テストケースが正常に実行され、テストカバレッジ率が100%に達したことを示しています。
クラスが予想どおりに機能することを確認するために使用される方法。例えば:
function it_can_add_two_numbers()
{
$this->add(2, 3)->shouldReturn(5);
}
このメソッドは、add()が2つの数値を正しく追加して結果を返すことができるかどうかをテストします。
クラスの動作が期待に沿っているかどうかを検出するために使用されます。例えば:
function it_should_return_false_for_empty_string()
{
$this->isEmpty('')->shouldReturn(false);
}
このテストにより、空の文字列の場合、 iSEMPTY()メソッドがfalseを返すことが保証されます。
メソッドが特定の場合に例外をスローするかどうかをテストするために使用されます。例えば:
function it_should_throw_an_exception_when_index_out_of_bound()
{
$this->shouldThrow('OutOfBoundsException')->during('get', [10]);
}
このテストでは、get()メソッドが範囲外のインデックスに渡されると、 outofboundsexception例外がスローされるかどうかをチェックします。
Matcherは、テスト結果が期待に沿っているかどうかを主張するために使用されます。 PHPSPECにはさまざまな内蔵マッチャーがあり、以下は一般的に使用されるものです。
Methodを確認すると、値が返されます。例えば:
function it_can_add_two_numbers()
{
$this->add(2, 3)->shouldReturn(5);
}
ADD()メソッドを呼び出して2と3に渡し、5を返すことを期待します。
返品値が期待値に等しいかどうかを決定します。例えば:
function it_should_return_hello_world()
{
$this->return_hello_world()->shouldEqual('Hello World');
}
return_hello_world()メソッドが文字列「hello world」を返すことを確認します。
メソッドが指定された例外をスローするかどうかを検出します。例えば:
function it_should_throw_an_exception_when_index_out_of_bound()
{
$this->shouldThrow('OutOfBoundsException')->during('get', [10]);
}
get()メソッドを呼び出して10で渡すと、 outofboundsexception例外がスローされると予想されます。
PHPSPECは、開発者が高品質のテストケースを簡単に作成するのに役立つ強力なPHPテストフレームワークです。動作主導型開発方法を通じて、PHPPECTはコードの保守性を向上させるだけでなく、テスト駆動型開発プロセスも最適化します。これは、PHP開発者がコードの品質を向上させるための強力なツールです。