Laravel Mockery 集成测试

Posted

技术标签:

【中文标题】Laravel Mockery 集成测试【英文标题】:Laravel Mockery Integration Test 【发布时间】:2013-09-08 08:42:08 【问题描述】:

我对如何使用 mockery 执行集成测试有点迷茫。

我有以下课程: 教师控制器 TeacherManager - 界面 TeacherManagerImpl - 实现

当涉及到 mockery / phpUnit,我如何从我的界面调用一个方法?它说接口不能被实例化。我知道它不能,但我怎样才能将它注入测试类,或者我应该在实现上做新的。在我看来,对实施进行新的尝试并不合适。

【问题讨论】:

【参考方案1】:

感谢 Laravel IRC 聊天室中的 Kindari 在测试设置方法中,只需将接口绑定到实现,然后使用 App::make 设置一个私有成员变量。见下文。

App::bind('FooInterface', 'FooImplementation'); 
$foo = App::make('FooInterface');

app() 也是 App::make 的快捷方式

【讨论】:

以上是关于Laravel Mockery 集成测试的主要内容,如果未能解决你的问题,请参考以下文章

PHP 单元测试 - 使用 Mockery 模拟静态自动加载类

Laravel Mockery - 这个测试没有执行任何断言

在 Laravel 中使用 Mockery/phpUnit 时出错

Laravel - 如何使用 mockery 对更新用户数据的中间件进行单元测试

未定义的属性:Laravel 单元测试中的 Mockery_3_App_Repositories_ArticleRepositoryInterface::$id

这个模拟对象上不存在方法 - Laravel,Mockery