1

phpspec を使用して、注釈などを使用して複数の値で同じテストを実行することは可能ですか?

たとえば、次のテストがあるとします。

public function it_should_return_sum_of_numbers_passed()
{
   $number1 = 1;
   $number2 = 1;

   $expectedresult = $number1 + $number2;

   $this->add($number1, $number2)->shouldReturn($expectedResult);
}

それはいいです。ただし、単一のパラメーター セットのみをテストします。-1 と 1、-1 と -2 などを渡すのはどうですか。これは非常に単純化されたシナリオですが、エッジ ケースごとに新しいメソッドを作成する必要があることを意味します。

4

1 に答える 1

4

phpspec にはデータ プロバイダーはありません (少なくともまだ)。次のようなことをしなければなりません:

public function it_should_return_sum_of_numbers_passed()
{
    $examples = array(
        array(1, 2, 3),
        array(-1, 1, 0),
        array(-1, -2, -3)
    );

    foreach ($examples as $example) {
        $number1 = $example[0];
        $number2 = $example[1];
        $expectedResult = $example[2];

        $this->add($number1, $number2)->shouldReturn($expectedResult);
    }
}
于 2013-10-20T10:15:41.090 に答える