【问题标题】:PHPSpec how to ask if a method returns either this or thatPHPSpec如何询问一个方法是否返回这个或那个
【发布时间】:2014-04-04 10:40:04
【问题描述】:

我有一个方法可以查询数据库并返回一个包含结果的数组,如果没有结果则返回 false。

在这种情况下,我需要 PHPSpec 做的只是测试它是否返回一个数组或 false,但我不知道该怎么做。

或者我是否需要模拟数据库查询并将其从我的方法中分离出来?

【问题讨论】:

    标签: laravel laravel-4 phpspec


    【解决方案1】:

    您没有显示任何代码,因此我们可以使用,但如果当前的匹配器不适合您,您可以创建新的:

    function it_should_return_array_or_false()
    {
        $this->getOptions()->shouldBeArrayOrFalse();
    }
    
    public function getMatchers()
    {
        return [
            'beArrayOrFalse' => function($subject, $value) {
                return is_array($value) || $value === false;
            },
        ];
    }
    

    【讨论】:

    • 啊啊啊啊!您已经一举阐明了内联匹配器的工作原理。棒极了。抱歉,我应该包含我的代码!非常感谢!
    • 我不得不稍微修改一下,否则它会失败。我需要将该方法分配给一个变量并将其传递给我的内联匹配器。这就是我所做的:laravel.io/bin/9QrR - 还有其他方法吗?
    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 2014-04-24
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多