Я пытаюсь написать тест для моего контроллера индекса, но я вижу, что мне нужно передать ему зависимости, чтобы иметь возможность проверить его поведение, я применил принципы SOLID, поэтому я всегда создаю экземпляры контроллеров, использующих внедрение зависимостейконтейнер, так что я могу сделать то же самое для экземпляра контроллера в тестовом файле.
Вопрос, который жжет мне голову, состоит в том, является ли это решение правильным, потому что я понимаю, что цель модульного тестирования заключается впротестировать классы независимо, и если я использую контейнер зависимостей, я уже добавляю в игру другую сущность ... Я имею в виду, что если контейнер зависимостей завершится неудачно, то все мои тесты контроллеров также будут неудачными, не имея в виду, что контроллеры делают ихработа неправильная, тогда что будет правильным решением?
<?php namespace App\Tests\Controller;
use \PHPUnit\Framework\TestCase;
use App\Controller\indexController;
use App\Controller\DependencyInjection;
class indexControllerTest extends TestCase
{
public function testIndexControllerCheckIfReturnedCorrectHttpResponseCode ()
{
$controller = DependencyInjection::getInstance(indexController::class );
$httpResponse = indexController()->index();
return assertEqual( $httpResponse->getStatusCode(), 200 );
}
}