php – Laravel测试服务依赖注入错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel测试服务依赖注入错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1702字,纯文字阅读大概需要3分钟。
内容图文
![php – Laravel测试服务依赖注入错误](/upload/InfoBanner/zyjiaocheng/809/af02374f3a44451a90d4fcb566a4fe19.jpg)
从结论开始,我得到这个错误:
[ErrorException]
Argument 1 passed to SomeValidatorTest::__construct() must be an instance of App\Services\Validators\SomeValidator, none given, called in ....vendor/phpunit/phpunit/src/Framework/TestSuite.php on line 475 and defined
在Laravel应用程序中,我有一个名为“SomeValidator.php”的脚本,如下所示:
<?php namespace App\Services\Validators;
use App\Services\SomeDependency;
class SomeValidator implements ValidatorInterface
{
public function __construct(SomeDependency $someDependency)
{
$this->dependency = $someDependency;
}
public function someMethod($uid)
{
return $this->someOtherMethod($uid);
}
}
哪个运行没有错误.
然后测试脚本SomeValidatorTest.php看起来像这样:
<?php
use App\Services\Validators\SomeValidator;
class SomeValidatorTest extends TestCase
{
public function __construct(SomeValidator $validator)
{
$this->validator = $validator;
}
public function testBasicExample()
{
$result = $this->validator->doSomething();
}
}
仅当测试脚本通过’./vendor/bin/phpunit’运行时才会显示错误.测试类似乎在没有声明依赖项的情况下启动并引发错误.有谁知道如何解决这一问题?提前致谢.
解决方法:
你不能将类注入到测试中(据我所知),因为它们不是由laravel / phpUnit自动解决的.
正确的方法是通过laravel的应用程序外观制作(解决)它们.您的测试脚本应如下所示:
<?php
class SomeValidatorTest extends TestCase
{
public function __construct()
{
$this->validator = \App::make('App\Services\Validators\SomeValidator');
}
public function testBasicExample()
{
$result = $this->validator->doSomething();
}
}
资料来源:http://laravel.com/docs/5.1/container
内容总结
以上是互联网集市为您收集整理的php – Laravel测试服务依赖注入错误全部内容,希望文章能够帮你解决php – Laravel测试服务依赖注入错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。