phpspec - 模拟方法的返回值

标签 php phpunit phpspec

在 phpspec 中,我可以模拟方法的返回值吗?

例如:

class MyClass()
{
    public function getStaffMemberNames()
    {
        // db call to get array of staff member names
    }

    public function sortStaffMemberNames()
    {
        return sort($this->getStaffMemberNames());
    }
}

我有兴趣测试 sortStaffMemberNames 方法。但它依赖于另一个使用数据库连接的类方法。我想模拟 getStaffMemberNames 以便我可以轻松地进行测试。

如何实现?

最佳答案

在 phpspec 中没有部分模拟(你不能模拟被测类)。这是一种不好的做法。

你应该模拟你的合作者(例如数据库连接)。

关于phpspec - 模拟方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255853/

相关文章:

PhpSpec 内置函数异常测试

php - 哪个更快,array_key_exists 还是 array_search?

PHP包含文件但 undefined variable

php - 既然 PEAR 方法不再可行,如何为 WAMP 安装 PhpUnit?

Phpunit 测试 Laravel Controller

php - 使用 phpspec 进行测试 - 来自当前类的模拟方法

测试 Symfony3 最佳实践

php - 如果 mysql_query() 失败,该怎么办?

php - PDO 类甚至不工作

mocking - 创建 Guzzle 客户端后将请求推送到 HandlerStack