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