4
從結論開始,我得到這個錯誤:Laravel測試服務的依賴注入錯誤
[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」測試類似乎是在沒有聲明的依賴的情況下啓動並拋出錯誤。有誰知道如何解決這一問題?提前致謝。
它終於成功了!謝謝! – tsuz