Я пытаюсь протестировать следующий класс командной строки Symfony 3.4 CLI с PHPUnit 7.
class SubscribeUsers extends ContainerAwareCommand
{
use LoggerTrait;
use DalcioTrait;
У меня есть набор характеристик с этим типичным форматом:
DalcioTrait.php
trait DalcioTrait
{
/**
* @var Dalcio
*/
protected $dalcio;
/**
* @required
* @param Dalcio $dalcio
*/
public function setDalcio(Dalcio $dalcio)
{
$this->dalcio = $dalcio;
}
/**
* @return Dalcio
*/
public function getDalcio(): Dalcio
{
return $this->dalcio;
}
}
В моем тесте у меня есть следующее:
$commandTester = new CommandTester($command);
$commandTester->execute(['command' => $command->getName()]);
, и это то место, где оно падает, потому что там, где я называю $this->getLogger()
или $this->getDalcio()
в SubscribeUsers
, оно падаетпотому что они оба NULL
.
Я использую аннотацию Symfony 3.4 @required
, потому что теперь я использую службы с автоматической проводной связью и больше не вызываю сеттеры явно в своих определениях служб.
Есть лиЕсть ли способ заставить PHPUnit 7 распознавать эти аннотации?