如何使用phpspec有条件地检查对象?
我刚开始学习phpspec,我有一个问题。 好的,您可以检查某个值是否等于其他值,如果您想查看某个值是否介于某些值之间,可以创建如下匹配器:如何使用phpspec有条件地检查对象?,php,laravel,tdd,phpspec,Php,Laravel,Tdd,Phpspec,我刚开始学习phpspec,我有一个问题。 好的,您可以检查某个值是否等于其他值,如果您想查看某个值是否介于某些值之间,可以创建如下匹配器: function getMatchers() { return [ 'beBetween' => function ($subject, $min, $max) { if ($subject >= $min && $subject <= $ma
function getMatchers()
{
return [
'beBetween' => function ($subject, $min, $max) {
if ($subject >= $min && $subject <= $max) {
return true;
}
return false;
}
];
}
但是你怎么能做一个有条件的测试呢?
假设some_method()
返回的值为1
我们怎么能对phpspec说去观察被测试对象的另一个属性呢
我在上一堂简单的骰子课。我想让每个骰子掷骰返回,并用掷骰的值和状态数组。如果模辊为最小值,则状态应为“严重未命中”;如果模辊为最大值,则状态应为“严重未命中”
所以,我想测试一下这个
掷骰子。
模具辊值应介于1和6之间
如果模辊值为1,则模辊状态应为“严重未命中”
如果掷骰值为6,掷骰状态应为“严重命中”
你能在phpspec中做这样的测试吗
谢谢你然后你写了不止一个测试!在我看来,测试是这样的:“你发送你的类a值X。你确保你得到Y作为回报。有选择地在B类中使用Z方法”。如果您有一些条件,您可以为每个场景编写一个测试。假设您的示例包含随机性,我会将“随机数生成”提取到另一个类中,以便您可以模拟它,以便单独测试您的“状态逻辑”。@edpaez谢谢:)
$this->some_method()->getValue()->shouldBeBetween(1,6);