问题标签 [mockery]

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 投票
2 回答
764 浏览

php - 模拟框架返回具有不同名称和类型的类

我正在尝试使用此代码创建一个模拟来满足类型提示(嘲弄):

或者这个(PHPUnit):

但是返回的模拟被称为Mockery\Mock Objector Mock_iFileSystemWrapper_a5f91049。当它不是我需要的任何一个框架的实例时,我应该如何输入检查?

为什么模拟框架试图加载真实的类?如果我想要真正的班级,我会包括真正的班级。

在编写测试时,这个问题已经让我慢了很多次,我将把类型提示扔出窗口并检查类名,或者只是使用生产对象,因为使用模拟很痛苦。

0 投票
1 回答
2548 浏览

php - 单元测试 Symfony2

我正在尝试使用 Mockery 来对我的 sf2 函数进行单元测试。我正在为我的第一次尝试而苦苦挣扎。

首先尝试测试一个使用安全上下文的类:

我创建了一个这样的testsetSecurityContext函数:

运行单元测试时,我收到错误:

测试集安全上下文

Mockery\Exception:方法 isGranted 被标记为 final,并且无法生成定义了此类方法的模拟对象。您应该将此对象的实例传递给 Mockery 以创建部分模拟。

所以我相应地改变了我的测试功能:

现在我收到该错误:

测试集安全上下文

ErrorException:可捕获的致命错误:传递给 Symfony\Component\Security\Core\SecurityContext::__construct() 的参数 1 必须实现接口Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface,没有给出,在 ..MenuBuilderTest.php 中调用第 91 行并在 ..Symfony\Component\Security\Core\SecurityContext.php 第 41 行中定义

所以我再次修改我的代码:

我得到另一个错误:

测试集安全上下文

ErrorException:可捕获的致命错误:传递给 Symfony\Component\Security\Core\SecurityContext::__construct() 的参数 2 必须实现接口Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface,没有给出,在 ...\MenuBuilderTest 中调用。 php 在第 94 行并在 ...\Symfony\Component\Security\Core\SecurityContext.php 第 41 行中定义

我最终得到:

这仍然不行,因为我得到了那个错误:

测试集安全上下文

ErrorException:可捕获的致命错误:参数 1 传递给 Atos\Worldline\Fm\Integration\Ucs\EventFlowAnalyser\Menu\MenuBuilder::setSecurityContext() 必须是Symfony\Component\Security\Core\SecurityContext的实例,给定的Mockery_50c5c1e0e68d2实例,在第 106 行的 ..\MenuBuilderTest.php 中调用并在 ..\MenuBuilder.php 第 140 行中定义

在我结束 100 行测试以测试 8 行功能之前,我真的很感激一些帮助......

0 投票
1 回答
98 浏览

php - 使用 Mockery 时的不完整测试

假设我正在测试一个方法在 php 中调用另一个方法

当我使用 PHPUnit 运行此测试时,它报告测试不完整,因为测试中没有 PHPUnit 断言。但是,它是一个有效的测试,如果不调用该方法将会出错。有什么好的解决方案可以让 PHPUnit 意识到这是一个有效的测试?

0 投票
1 回答
304 浏览

php - 如果未调用所需的方法,则 Mockery/Etsy PHPExtensions 不会失败测试

我有下面的代码,我希望在运行时会失败,因为该类DoesNothing不使用模拟类或在其上调用任何必需的方法。

但是当我运行它时,它通过了。我希望它会说“未调用方法删除”等。

有什么问题?与 Mockery 如何与 PHPUnit 对话有关?

谢谢,马丁

编辑:我还应该提到我们正在使用Etsy 的 PHPExtensions将其集成到 PHPUnit

0 投票
1 回答
1108 浏览

php - 在这个模拟对象上找不到模拟方法 shouldRecieve()

我正在使用带有 Laravel 和 PHPunit 的 padraic/mockery 包。我在 PHP 5.4.3 上。

当试图创建一个模拟对象来测试控制器时,我收到一个错误:

我的代码在下面,我非常密切地关注教程,但无法弄清楚为什么我的模拟对象似乎没有正确实例化。

0 投票
1 回答
143 浏览

php - 模拟一个类,编辑一个方法并使用另一个

我正在尝试测试一种方法,这取决于另一种方法。第一种方法注册一个用户,但必须检查给定的用户名是否可用。

我尝试了一些测试类

我想模拟类并编辑方法“a”的行为。

我试过以下

但是方法“a”保持不变。

我如何编辑方法“a”的行为,或者,我该怎么做?

谢谢

0 投票
1 回答
1021 浏览

php - PHPunit 和 Mockery:找不到方法

我在使用 PHPunit 和 Mockery 时遇到问题。出于某种原因,PHPunit 说onFoo我在 Mockery 中定义的方法不存在。

有谁知道这段代码有什么问题?

0 投票
1 回答
2290 浏览

php - 找不到 Illuminate\Routing\Redirector::to("user/login") 的匹配处理程序

我如何在 laravel 4 中用参数模拟外观?例如,我正在尝试测试我的用户控制器和我的“登录”方法。

我的控制器方法

不起作用的重定向测试

我收到以下异常。我不知道如何将“用户/登录”参数注入重定向模拟

Mockery\Exception\NoMatchingExpectationException : 没有为 Illuminate\Routing\Redirector::to("user/login") 找到匹配的处理程序

0 投票
3 回答
5859 浏览

php - 嘲弄 shouldReceive()->once() 似乎不起作用

我试图让 Mockery 断言给定方法至少被调用一次。

我的测试课是:

如您所见,有一个测试(希望)创建了一个期望 setUri 将被调用的测试。由于没有涉及任何其他代码,我无法想象它可以被调用而我的测试通过了。谁能解释为什么?

0 投票
3 回答
3435 浏览

php - 嘲讽和狂饮

有人用 Mockery 测试 Guzzle 吗?当我尝试为 guzzle 客户端创建模拟时,出现异常:

这是代码:

谁能帮我这个?