我正在使用严重依赖静态方法的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

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

  1. braintree支付开发整合paypal

    braintree支付开发 braintree介绍 流程介绍 前端从服务端请求一个客户端令牌,并初始化客户端SDK. 服务端SDK生成客户端令牌并将其发送回客户端 客户提交付款信息,客户端SDK将该信 ...

  2. Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术

    Android深度探索(卷1)HAL与驱动开发 心得体会 第十章  嵌入式Linux的调用技术 对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试.例如,设置断点,逐步跟踪代码. ...

  3. HBuilder开发旅游类APP(一) ----- 实现地图插件调用、苹果和安卓同步混合开发

    HBuilder开发旅游类APP(一) ----- 实现地图插件调用.苹果和安卓同步混合开发 作者:班尼科 本博文内容参考了网络资源,但文章完全是本人原创,喜欢请给我点赞,转载请注明出处哦. 标签: ...

  4. Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分 ...

  5. 软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽。

    软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽. 图片说明 最佳答案: 专家已采纳 先用c等调用一下so,看函数能否正确调用 文章来源:https://ask.csdn ...

  6. braintree php 开发,PHP关于Braintree支付

    现国内关于Braintree支付的资料少之又少,所以我来分享下关于Braintree支付的相关代码,希望能对需要的人有所帮助. 一 :获取key以及MerchantID. 1.1:首先在https:/ ...

  7. 《GDAL源码剖析与开发指南》一一1.9 简单的调用

    本节书摘来自异步社区出版社<GDAL源码剖析与开发指南>一书中的第1章,第1.9节,作者:李民录 更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.9 简单的调 ...

  8. 敏捷开发用户故事系列之二:如何面向客户价值编写故事

    这是敏捷开发用户故事系列的第二篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 敏捷开发中的用户故事采用的语法模式看似简单,却蕴含着深刻的思想. "作为一个--,可以--,以(以 ...

  9. 微信小程序开发系列六:微信框架API的调用

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

最新文章

  1. MapReduce进阶:多MapReduce的链式模式
  2. [导入]关于复制目录架构
  3. 分布式技术一周技术动态 2016.07.10
  4. Python爬虫淘宝商品详情页价格、类似数据
  5. Unity动画系统详解9:Target Matching是什么?
  6. hashmap是线程安全的吗?怎么解决?_线程安全及三种解决方案
  7. VC++ 进度条更新方案
  8. python 保存文件 吃内存_python检测空间储存剩余大小和指定文件夹内存占用的实例...
  9. Citrix XenDesktop如何发布LocalApp
  10. android谷歌打印插件下载地址,谷歌浏览器打印插件:Print Plus
  11. excel保存csv文件数字失真解决办法
  12. 网站SEO优化::降低网站跳出率、提高用户粘度网站用户粘度
  13. pytorch torch.nn到底是什么?
  14. Word学习笔记:P12-合并打印信封与标签设定
  15. 最适合python程序员用的笔记本-JupyterLab:程序员的笔记本
  16. Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结
  17. exchange外网访问和证书配置
  18. R语言构造扑克牌自动发牌,洗牌
  19. 解决!Google Play 设备未获得Play保护机制认证
  20. n枚硬币问题(假币问题)——分治法(减治法)

热门文章

  1. the code place where the binding is converted to final value displayed in ui
  2. 什么是服务器的SSL PSE
  3. IBASE save - my toolset investigation
  4. How where used list in SAP GUI is implemented
  5. Fiori Elements setBusyIndicatorDelay调试的几个关键点
  6. 如何测试 SAP OData的filter功能
  7. SAP Customer Data Cloud的Audit log设置
  8. 使用jMeter构造逻辑上有依赖关系的一系列并发请求
  9. SAP CRM呼叫中心异步搜索功能的实现
  10. 2020各大网站rss订阅源地址_RSS订阅器inoreader一些使用心得