Это происходит потому, что вы не тестируете обе ветви функции, в вашем тестовом случае функция ломается, когда вы выкидываете исключение, поэтому она технически не завершается.Вы протестировали half
функции, даже если она там единственная логика.
Если вы хотите 100% покрытия, вам нужно создать тест, где $this->collection[$key]
установлено В этом случае я бы предложил изменить вашу функцию на что-то вроде
protected function validateRemove($key)
{
if (!isset($this->collection[$key])) {
throw new CategoryCollectionBadItemException();
}
return true;
}
, а затем создать еще один тест, который подтверждает значение true, когда вы вызываете validateRemove()
и для $this->collection[$key]
установлено значение .
Мой пример - я не знаю, как вы используете этот кусок кода!