Я просто пытаюсь понять, что такое «правильный путь», чтобы писать тесты в следующем случае:PHPUnit и макет для многих объектов зависят
class Time
{
public function __construct(Hour $h, Minute $m, Second $s) {}
}
class TimeRange
{
public function __construct(Time $start, Time, $end)
{
if ($this->startTime > $this->endTime) {
throw new \Exception;
}
}
}
Цель состоит в том, чтобы реализовать модульный тест для TimeRange метод конструктора, который поможет убедиться, что исключение бросает в какой-то момент
Как правильно получить объект Mock of the Time в этом случае (без получения ложных спагетти)?
Похоже, ваш класс времени это просто значение объекта, скорее всего, это неизменное. Не издевайтесь над объектами ценности, просто создавайте их. –
@JakubZalas Да, вы правы, и это то, что я делал ранее, но теперь я столкнулся с проблемой. Если логика объекта значения будет изменена, тогда весь ваш тест будет разрушен. По мнению, это очень сложно поддерживать такой код. С помощью объектов Mock/Stub это может быть проще – user1016265
Объекты Value не имеют сложной логики. Это ценности. –