返回另一个模拟类的模拟模拟类
Posted
技术标签:
【中文标题】返回另一个模拟类的模拟模拟类【英文标题】:Mockery mock class that returns another mocked class 【发布时间】:2019-08-18 05:00:38 【问题描述】:我有课
<?php
class Cards
public function __construct($id)
$this->id = $id;
public function add($card)
// Make API call
return true;
还有另一个返回 Cards 类的类
<?php
class Payment
public function cards()
return new Cards('1');
而且我似乎无法弄清楚如何模拟付款,所以它返回一个模拟卡。基本上我想
模拟付款,因此它返回一个模拟的卡片,允许类似的功能
function()
$vault = new Payment;
$cards = $vault->cards();
if ($cards->add())
// do stuff
无需对支付处理器进行 API 调用即可进行模拟和测试。
【问题讨论】:
【参考方案1】:问题是您尝试使用 new
关键字实例化 Card
类。这使得(几乎)不可能模拟它。您可以使用几种不同的技术来替换 new
关键字,最简单的方法是将实例传递给 Payment
构造函数或直接传递给方法。
【讨论】:
以上是关于返回另一个模拟类的模拟模拟类的主要内容,如果未能解决你的问题,请参考以下文章