问题标签 [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.

0 投票
3 回答
6398 浏览

php - 如何模拟您正在使用 Prophecy 测试的类中的方法?

我想第一次使用Prophecy ("phpspec/prophecy-phpunit") 为我的类创建单元测试。我想测试一个在同一服务中调用另一个函数的函数,代码如下:

我遇到的第一个问题是我正在使用findOneByUsernameProphecy,据我所知,它不允许您:模拟魔术方法(_callfor EntityRepository),模拟不存在的方法,模拟您正在测试的类。如果这些都是真的,那我就有点麻烦了,这意味着如果不测试类中的其他函数,我就无法测试这个函数。

到目前为止,我的测试如下所示:

当然,测试失败是因为对$em, 和存储库的承诺没有实现。如果我实例化我正在测试的类,测试会失败,因为该函数随后会调用createUserFromLdap()同一个类并且没有经过测试。

有什么建议么?

0 投票
1 回答
476 浏览

php - 使用 PHPunit 测试代码时遇到问题

我正在使用 PHPUnit 测试代码。我们如何测试该函数是否在循环内从同一类调用另一个函数?这是我的dashboardmanager.php

这是我的测试文件。我在 test_getZoneOrderValue() 中遇到问题。这是我的dashboardmanagertest.php

0 投票
1 回答
109 浏览

php - 预言和 PHP DOM 的问题

我一直在移动我的 PHPUnit 测试以使用 PHPSpec 的 Prophecy 库 - 但是在使用 PHP DOMDocument 的假人时我遇到了一个奇怪的错误:

我收到一个错误ErrorException: DOMDocument::loadXML(): Empty string supplied as input

我不确定为什么调用 loadXML - 这些应该是假人......

0 投票
2 回答
5040 浏览

php - 如何在 Prophecy 中模拟相同的方法,使其在每个调用中返回不同的响应

在纯 PHPUnit 模拟中,我可以执行以下操作:

我无法使用 Prophecy 做同样的事情。可能吗?

0 投票
1 回答
1153 浏览

php - PHP Prophecy Mystery

I have $entity_type->isSubClassOf('Drupal\Core\Entity\FieldableEntityInterface')->willReturn(TRUE); and getting this very baffling error:

0 投票
1 回答
299 浏览

drupal - 只有这个,没有更多的预言?

所以我在 PhpUnit 测试中有这个:

我想告诉 Prophecy,这就是别名管理器应该被调用的所有内容,不应该调用其他方法,也不应该使用任何其他参数调用此方法。后者我可以

但是我如何对预言说“没有别的”呢?

0 投票
3 回答
1798 浏览

php - PhpStorm 中的预言自动完成

我在 PHPUnit 测试中使用 PhpStorm 和Prophecy 。

我使用了插件PHPUnit Autocomplete Assistant,它运行良好,直到我更新到 PhpStorm 2016.1.1。插件被禁用,此消息在 PhpStorm 启动时显示:

以下插件与当前的 IDE 版本不兼容: PHPUnit Autocomplete Assistant

作者在他的GitHub 问题上一周没有回答,所以我开始寻找替代方案,但找不到任何替代方案。如果没有这样的插件,PHPStorm 中的 Prophecy 并不令人愉快——你的编辑器充满了警告,没有自动完成等等。

你知道 PHPStorm 和 Prophecy 的其他工具吗?

0 投票
1 回答
1996 浏览

unit-testing - 如何使用 Laravel、PHPUnit、Prophecy、DI 模拟或存根

您好,我正在尝试使用 Prophecy 进行我的第一个模拟或存根测试。我从未使用过模拟和存根或嘲弄。我已经完成了相当多的单元测试,其中依赖项并没有真正发挥作用,等等。

如果我能让这个测试正常工作,我认为它将帮助我进一步测试我的代码。任何帮助将不胜感激!

首先是错误...

这是测试类的相关部分......

这是我试图测试的类/方法的相关部分......

我还通过以下方式修改了测试...

即使我省略了 ->willReturn 部分,我仍然会得到完全相同的错误。

我不希望 isInitial 调用实际的 MaintenanceFlagsProvider 类,我希望测试伪造该调用,但通过测试将 $flag 变量设置为我想要的任何值(如果有意义的话)。

0 投票
2 回答
4998 浏览

php - PHPUnit 预言一个没有确切参数的方法

我正在使用预言来模拟 UserRepository 类,以确保在发送POST请求时触发 UserRepository 上/user的方法。create()

唯一的问题是该create()方法将请求数据作为参数发送到存储库,以便在执行任何操作之前对输入进行一些认真的调整。我如何在create()不告诉预言参数的情况下模拟调用?

还是这对我来说真的很糟糕,并且永远不应该将请求数据传递到存储库?

0 投票
0 回答
229 浏览

php - PhpSpec - 用另一个参数模拟一个参数

我想知道是否可以忽略Exceptionin 方法并强制使用willReturn方法?

我有一个例子:

理论上,Transformer 必须有同名的实体(通过this->getClassName),但是在这种情况下,我该怎么办,因为我的SimpleEntityTransformerInterface不一样。

在测试文件中:

所以我收到了这个错误信息:

你对这类问题有想法吗?