如何在 PHP Codeception 中模拟 Stripe 类

Posted

技术标签:

【中文标题】如何在 PHP Codeception 中模拟 Stripe 类【英文标题】:How to mock Stripe classes in PHP Codeception 【发布时间】:2021-11-03 22:40:32 【问题描述】:

我试图在单元测试中模拟一个简单的 Stripe\Customer 实例。该方法仅使用此实例来检索名称属性。在我的测试中,ma​​ke 语句如下所示:

$customer = $this->makeEmpty(Customer::class, ['name' => $cust_nm]);

Codeception 返回以下错误:

无法添加属性名称,Stripe\Customer 类实现了 __set 方法,并且不存在名称属性

我也尝试过使用 ma​​keEmptyExcept,但得到相同的错误消息。我真正想要的只是将对象传递给一个方法并提取一个或两个属性。

有什么建议吗?

【问题讨论】:

【参考方案1】:

不要模拟它,只需创建一个实例并设置一个属性。

$customer = new Customer();
$customer->name = $cust_nm;

【讨论】:

谢谢。毕竟这就是最终的结果。

以上是关于如何在 PHP Codeception 中模拟 Stripe 类的主要内容,如果未能解决你的问题,请参考以下文章

Yii2中如何使用CodeCeption

如何在 Codeception\Util\Stub 中正确使用 atLeastOnce 方法?

codeception - 模拟 api 调用数据

如何在 Codeception 功能测试中使用 PHPUnit 断言方法?

使用 PHP Codeception 验收测试检查源代码中的单次出现

如何在 Codeception 命令行的验收测试中使用动态 url