如何使用phpspec有条件地检查对象?

时间:2014-09-14 14:56:43

标签: php laravel tdd phpspec

我刚开始学习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和6之间 如果模具辊值为1,则模具辊状态应为“critical_miss” 如果模具辊值为6,则模具辊状态应为“critical_hit”

你能用phpspec做这样的测试吗?

谢谢

0 个答案:

没有答案