Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用附加卡嘲笑条纹客户服务_Php_Stripe Payments_Mockery - Fatal编程技术网

Php 用附加卡嘲笑条纹客户服务

Php 用附加卡嘲笑条纹客户服务,php,stripe-payments,mockery,Php,Stripe Payments,Mockery,我正在为一个使用Stripe构建的支付平台编写单元和集成测试,需要使用mockry模拟customer对象,不幸的是,我在尝试创建带有附加卡对象的Stripe客户时遇到了一些麻烦 做这件事的最佳方法是什么?自从我发布了这个问题后,我意识到我已经创建了一个抽象条带功能的服务,因此,我可以简单地扩展该功能,以包括createCard

我正在为一个使用Stripe构建的支付平台编写单元和集成测试,需要使用mockry模拟customer对象,不幸的是,我在尝试创建带有附加卡对象的Stripe客户时遇到了一些麻烦


做这件事的最佳方法是什么?

自从我发布了这个问题后,我意识到我已经创建了一个抽象条带功能的服务,因此,我可以简单地扩展该功能,以包括
createCard
检索卡
删除卡
方法:

class StripeService implements StripeServiceContract
{
    public function createCard(Stripe\Customer $customer, $source, $default = true)
    {
        $source = $customer->sources->create(compact('source'));
        if ($default) {
            $customer->default_source = $source->id;
            $customer->save();
        }
        return $source;
    }

    public function retrieveDefaultCard(Stripe\Customer $customer)
    {
        return $customer->sources->retrieve($customer->default_source);
    }
}
然后我可以用嘲弄来嘲弄:

Mockery::mock(StripeServiceContract::class, function (MockInterface $mock) {
    $mock->shouldReceive('createCard')->andReturnUsing(function ($customer, $id, $default) {
        return new Stripe\Card($id);
    });
    $mock->shouldReceive('retrieveCard')->andReturnUsing(function ($id) {
        return new Stripe\Card($id);
    });
});

请展示你尝试过的东西,以及结果是什么。我已经回答了我自己的问题,答案很简单!