1

phpspec の学習を始めたばかりで、質問があります。値が他の値と等しいかどうかを確認できます。値がいくつかの値の間にあるかどうかを確認したい場合は、次のようなマッチャーを作成できます。

function getMatchers()
{
    return [            
        'beBetween' => function ($subject, $min, $max) {
                if ($subject >= $min && $subject <= $max) {
                    return true;
                }
                return false;
            }           
    ];
}

そして次のようなテストを行います

$this->some_method()->getValue()->shouldBeBetween(1,6);

しかし、どのように条件付きを行うことができますか? 返される値が 1 であるとしましょうsome_method()。テスト対象のオブジェクトの別のプロパティを調べるように phpspec にどのように言えますか?

私は簡単なサイコロのクラスを作っています。そして、ダイスロールごとにロールの値とステータスを返し、配列する必要があります。サイコロの出目が最小の場合、ステータスは「critical_miss」になり、サイコロが最大の場合、ステータスは「critical_hit」になります。

だから、私はこれをテストしたい...

サイコロを振る。ダイスロールの値が 1 の場合、ダイスロールの値は 1 から 6 の間である必要があります。ダイスロールの値が 6 の場合、ダイスロールのステータスは「critical_miss」である必要があります。

phpspecでそのようなテストを行うことはできますか?

ありがとうございました

4

0 に答える 0