问题标签 [prophecy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
composer-php - phpunit 错误:找不到类 'Prophecy\Prophet'
我正在使用以下代码在 Prophecy 中编写一些 PHPUnit 测试:
这产生了以下输出:
Sebastian Bergmann 和贡献者的 PHPUnit 6.5.14。
测试项目测试套件 E.
2 / 2 (100%)时间:105 毫秒,内存:6.00MB
有 1 个错误:
1) Tests\AppBundle\Service\EnclosureBuilderServiceProphecyTest::testItBuildsAndPersistsEnclosure 错误:找不到类“Prophecy\Prophet”
我对 PHPUnit 和一般测试有点陌生,但据我了解,PHPUnit 应该具有对使用 Prophecy 的内置支持,这使得上述错误非常令人惊讶。
我尝试安装phpspec/prophecy但该过程失败,如下所示:
php - 预言 - 期望不会在对象上调用任何方法
现在我在 PHPUnit 中使用以下代码来期望在模拟上没有调用任何方法:
到目前为止,我还没有找到在 Prophecy 中实现相同结果的方法。到目前为止,我只能测试特定方法的假设,而不是上面示例中的所有方法。
目前我正在使用以下自定义断言来测试是否没有调用任何方法。Prophecy 的 ObjectProphecy 公开了一个方法来获取对特定函数的所有调用,因此我使用反射来获取类上的所有方法,而不是每个方法的每次调用。如果之后调用数组为空,我知道没有调用任何方法。该方法现在看起来像这样:
到目前为止,它适用于我有限的样本量,但我对此并不满意。我觉得应该有一种更简单的方法来实现相同的结果。
php - 具有不同参数的 phpspec/prophecy 存根方法调用
我有一个特定外部 API 的包装器,它是这样构造的(它是 PHP8 语法思想):
所以这个类的规范是这样构造的:
我在它使用那些静态方法进行调用时对其进行调试,所以它似乎正确地模拟了构造函数。
这个 API 客户端类有这样一个方法(简化):
我想为此写一个规范
问题是规范制作getQuotasUrl
是第一次调用而不是制作getSurveysUrl
,我做错了什么?或者也许预言不考虑间谍输入参数并总是使用最后一个?
提前致谢!
php - PHP Prophecy ->reveal() 方法 - 我应该将期望(如“willReturn”、“ShouldBeCalled”)放在它之前还是之后?
现在使用 PHP Prophecy。我有两个代码示例:一个:
二
我不明白哪个是正确的方法,为什么?