警告:这个问题是Laravel 4的具体问题.
我之前一直在我的控制器中使用Facades.因此我知道代码正在运行.现在我需要出于各种原因引入依赖注入.
重构控制器后,我得到以下错误:
Illuminate\Container\BindingResolutionException
无法解析的依赖项解析[参数#0 [$ name]].
我无法弄清楚问题出在哪里.错误消息对我来说似乎很神秘,我不明白.(我没有看到我的__constructor参数有任何问题,因为我已经注册了绑定HelpersInterface)
以下是我的代码的重要部分:
文件:app/start/global.php
<?php
// ...
App::bind('Acme\Interfaces\HelpersInterface', 'Acme\Services\Helpers');
Run Code Online (Sandbox Code Playgroud)
文件:composer.json
// ...
"autoload": {
// ...
"psr-0": {
"Acme": "app/"
}
},
// ...
Run Code Online (Sandbox Code Playgroud)
文件:app/Acme/Controllers/BaseController.php
<?php namespace Acme\Controllers;
use Carbon\Carbon;
use Controller;
use Illuminate\Foundation\Application as App;
use Illuminate\View\Factory as View;
use Acme\Interfaces\HelpersInterface as Helpers;
use Illuminate\Http\Response;
class BaseController extends Controller {
/**
* @var \Illuminate\Foundation\Application
*/
private $app;
/**
* @var \Carbon\Carbon
*/
private $carbon;
/**
* @var …Run Code Online (Sandbox Code Playgroud) 我想做的事情如下:
$I->setExpectedException('Laracasts\Validation\FormValidationException');
Run Code Online (Sandbox Code Playgroud)
在一个功能性的cept.有机会吗?
\PHPUnit_Framework_TestCase::setExpectedException('Laracasts\Validation\FormValidationException');
Run Code Online (Sandbox Code Playgroud)
上面的代码将单独工作,但如果我运行codecept run,一旦完成预期异常的测试,测试就会卡住.
这是我的设置:
阳明:
class_name: FunctionalTester
modules:
enabled: [Filesystem, Db, FunctionalHelper, Laravel4, Asserts]
Run Code Online (Sandbox Code Playgroud)