Я новичок в UnitTests и иногда не уверен, что мой UnitTest
должен проверить.
Ниже приведен очень упрощенный пример
class MappingHelper
{
private $mappingRepository;
public function __construct(MappingRepository $mappingRepository)
{
$this->$mappingRepository = $mappingRepository
}
public function getMappingForCode(string $code)
{
return $this->mappingRepository->getMappingForCode($code);
}
}
Так что это в основном только метод обертки.
Должен ли я проверить поведение или результат метода?
Результат
Это было бы больше усилий и как-то также излишним, потому что я уже
проверить функциональность в самом UnitTest для MappingRepository.
Поведение
Мне кажется более полезным только для проверки, если метод ‘getValueForCode’ из
$ this-> mappingRepository вызывался один раз с параметром $ code.
Проблема с этим решением заключается в том, что зависимость является окончательной и не имеет интерфейса,
поэтому я не могу высмеять его и поэтому не могу проверить, был ли вызван метод.
Конечно, я мог бы удалить финал, но я не хочу, чтобы класс был расширен.
Также интерфейс не нужен, потому что не будет никакой другой реализации.
Так что я бы сделал это изменение только для того, чтобы создать UnitTest, который как-то нехорошо.
Задача ещё не решена.
Других решений пока нет …