【发布时间】:2020-05-03 18:25:16
【问题描述】:
我正在为datastax cassandra extension 开发一个包装器。
扩展的简单用法如下所示,它尝试连接到 127.0.0.1:9042 上的 Cassandra 服务器:
$connection = \Cassandra::cluster()->build()->connect(); // instance of \Cassandra\DefaultSession
显然它会出错,因为没有可用的正在运行的服务器。
我尝试逐步模拟所有这些调用,但它不起作用。
使用包mockery/mockery 的主要问题是:
-
\Cassandra、\Cassandra\Cluster\Builder和\Cassandra\DefaultSession都定义为 final 类 - 所有类都已预加载,因此代理和部分模拟不起作用
- 我不想在我的机器上运行 cassandra 服务器,因为它无法处理如此繁重的服务器,而且我想为我正在开发的包设置 CI
知道如何处理这种情况吗?
【问题讨论】:
标签: php unit-testing phpunit mockery