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);

但是你怎么能做有条件的呢?假设some_method()返回的值是 1,我们如何让 phpspec 查看正在测试的对象的另一个属性?

我正在做一个简单的骰子课。我希望每个掷骰子都返回并排列掷骰子的值和状态。如果掷骰子是最小值,则状态应该是“critical_miss”,如果掷骰子是最大值,状态应该是“critical_hit”。

所以,我想测试一下...

掷骰子。如果掷骰值为 1,掷骰值应介于 1 和 6 之间,掷骰状态应为“critical_miss” 如果掷骰值为 6,掷骰状态应为“critical_hit”

你能在phpspec中做这样的测试吗?

谢谢

4

0 回答 0