php – 如何为使用Braintree和静态方法调用的端点编写集成测试
发布时间:2020-12-13 21:55:18 所属栏目:PHP教程 来源:网络整理
导读:我正在使用严重依赖静态方法的 Braintree PHP客户端. 我在项目中的所有端点都包含集成测试 就像是: Storage::shouldReceive('put')-once()-andReturn(true);$this-post('/api/payment'); 正如你所看到的,我也在使用Mockery来创建模拟.但是,由于Braintree库
我正在使用严重依赖静态方法的
Braintree PHP客户端.
我在项目中的所有端点都包含集成测试 就像是: Storage::shouldReceive('put')->once()->andReturn(true); $this->post('/api/payment'); 正如你所看到的,我也在使用Mockery来创建模拟.但是,由于Braintree库严重依赖静态方法,我无法创建方法,因此无法测试这些端点. 这是使用Braintree PHP客户端编写的代码示例: $result = BraintreeTransaction::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 ] ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |