Таким образом, для целей тестирования этот метод, использующий отношения laravel, никогда не достигнет оператора возврата вне foreach l oop. Откуда мне знать? Поскольку fieldName существует в одном из этих полей формы, я просто не знаю, какое из них, следовательно, для l oop.
Рассмотрим следующий метод:
protected function fetchFieldLabel(string $fieldName) {
foreach ($this->forms as $form) {
$foundField = $form->fields->where('name', '=', $fieldName)->first();
if (!is_null($foundField)) {
return $foundField->label;
}
}
return null;
}
Я должен не нужно return null
в конце метода, если я его удалю, мой охват кода не будет 100% для этого метода, поэтому я ищу лучший способ вернуть $foundField->label
без a для l oop поскольку покрытие кода всегда будет попадать в этот оператор возврата (в конце концов), и оно никогда не покинет foreach l oop.
Для контекста:
Я смотрел на фильтр , но я не уверен, как использовать его в этом контексте.
Когда я пишу что-то вроде:
$this->forms->filter(function($form) use($fieldName) {
return $form->fields->where('name', $fieldName);
})->first();
Я получаю весь объект формы, все его поля и все их зависимости.
Для справки:
- Форма имеет много полей, поле принадлежит форме.
Любые мысли о том, как я мог бы написать это так, чтобы я получил 100% покрытие кода и не имел "никогда не достигнуто return null
" * 1 036 *
PS: Все, что я хочу, - это найти поле (в коллекции форм), к которому принадлежит $fieldName
, и вернуть метку этого поля.
PS2: я не смог бы написать тест, в котором он мог бы вернуть ноль, поскольку в этом случае имя поля будет ВСЕГДА существовать в наборе полей форм. Опять же, мы просто не знаем, на каком он существует.