braintree php 开发,php – 如何为使用Braintree和静态方法调用的端点编写集成测试...

我正在使用严重依赖静态方法的Braintree PHP客户端.

我在项目中的所有端点都包含集成测试

就像是:

Storage::shouldReceive('put')->once()->andReturn(true);

$this->post('/api/payment');

正如你所看到的,我也在使用Mockery来创建模拟.但是,由于Braintree库严重依赖静态方法,我无法创建方法,因此无法测试这些端点.

这是使用Braintree PHP客户端编写的代码示例:

$result = Braintree\Transaction::sale([

'amount' => '1000.00',

'paymentMethodNonce' => 'nonceFromTheClient',

'options' => [ 'submitForSettlement' => true ]

]);

我有什么选择?

解决方法:

this answer只有你有嘲弄才能工作1. *已安装..早期版本不会做静态方法嘲笑.以下代码有效:

$brainTreeMock = Mockery::mock('alias:Braintree_Transaction');

$transaction = (object)[ 'id' => str_random(5) ];

$brainTreeMock->shouldReceive('sale')->andReturn((object)[

'success' => true,

'transaction' => $transaction

]

);

标签:braintree,php,integration-testing,mockery

来源: https://codeday.me/bug/20190727/1556038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值