如何在 PHP Codeception 中模拟 Stripe 类
Posted
技术标签:
【中文标题】如何在 PHP Codeception 中模拟 Stripe 类【英文标题】:How to mock Stripe classes in PHP Codeception 【发布时间】:2021-11-03 22:40:32 【问题描述】:我试图在单元测试中模拟一个简单的 Stripe\Customer 实例。该方法仅使用此实例来检索名称属性。在我的测试中,make 语句如下所示:
$customer = $this->makeEmpty(Customer::class, ['name' => $cust_nm]);
Codeception 返回以下错误:
无法添加属性名称,Stripe\Customer 类实现了 __set 方法,并且不存在名称属性
我也尝试过使用 makeEmptyExcept,但得到相同的错误消息。我真正想要的只是将对象传递给一个方法并提取一个或两个属性。
有什么建议吗?
【问题讨论】:
【参考方案1】:不要模拟它,只需创建一个实例并设置一个属性。
$customer = new Customer();
$customer->name = $cust_nm;
【讨论】:
谢谢。毕竟这就是最终的结果。以上是关于如何在 PHP Codeception 中模拟 Stripe 类的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Codeception\Util\Stub 中正确使用 atLeastOnce 方法?
如何在 Codeception 功能测试中使用 PHPUnit 断言方法?