Использование PHPUnit с PHP-DI - PullRequest
0 голосов
/ 15 апреля 2019

Я использую библиотеку PHP-DI, и она прекрасно работает для моего кода , используя файл начальной загрузки и файл конфигурации , как рекомендовано в документации PHP-DI.

Затем в моем приложении я получаю контейнер и запускаю его, вызывая загрузчик:

$container = require __DIR__ . '/Container/bootstrap.php';
$main = $container->get( Main::class );

Так что теперь я пытаюсь настроить модульное тестирование с помощью PHPUnit.

Я хотел бы получить контейнер $ в каждом классе Test, чтобы я мог внедрить все зависимости каждого теста, используя $ container-> injectOn ($ this) , как предложено в PHP- DI документация .

Я наткнулся на этот открытый вопрос [который в основном у меня над головой], но он все еще открыт и, похоже, не имеет никаких рекомендаций.

https://github.com/PHP-DI/PHP-DI/issues/125

Я думаю только о том, что я могу просто вызвать bootstrap в setUp () так же, как и мое основное приложение?

$container = require __DIR__ . '/Container/bootstrap.php';

Это то, что я должен делать? Есть ли более элегантный или рекомендуемый способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 15 апреля 2019

Да, загрузка вашего контейнера в ваш тест - это нормально. Если ваш загрузчик делает слишком много вещей, которые могут стать более сложными, но в идеале ваш загрузчик не должен делать много (просто настройте контейнер и создайте класс приложения).

...