gpt4 book ai didi

Laravel Testing/phpunit,使用依赖注入(inject)时传递的参数太少

转载 作者:行者123 更新时间:2023-11-28 21:38:18 24 4
gpt4 key购买 nike

我正在尝试使用 Laravel 创建一个简单的测试。我的测试代码如下;

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App\Http\Controllers\Abc\AbcController;

class AbcTest extends TestCase
{

/**
* A basic test example.
*
* @return void
*/

private $abcController;

public function __construct (AbcController $abcController) {
$this->abcController = $abcController;
}

public function testExample()
{
$this->assertTrue(true);
}

但是,当我运行测试时,我遇到了这个错误,

PHP fatal error :未捕获的 ArgumentCountError:函数 Tests\Feature\abc::__construct() 的参数太少,0 在/var/www/nex/backend/vendor/phpunit/phpunit/src/Framework/TestSuite 中传递。 php 在第 151 行,正好在/var/www/nex/backend/tests/Feature/abc.php:28 中预期为 1

我一直在使用这种方法为我的项目的其余部分执行依赖注入(inject)。我不确定为什么它不能处理这个特定代码。

感谢所有帮助。

谢谢!

最佳答案

检查 https://laravel.com/docs/5.8/testing你不应该在 Controller 上使用依赖注入(inject)。相反,您应该调用端点。

例子

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App\Http\Controllers\Abc\AbcController;

class AbcTest extends TestCase
{

public function testExample()
{
$response = $this->get('/url');

$response->assertOk();
}
}

关于Laravel Testing/phpunit,使用依赖注入(inject)时传递的参数太少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55392182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com