У меня есть простой класс, как:PHPUnit: как вы можете протестировать метод с помощью экземпляра класса?
class Subject {
/** @var ValueObject[] */
private $collection = [];
function addToCollection (array $whatver) {
if (array_key_exists($whatever, 'smth')) {
$collection[] = new ValueObject($whatever);
return true;
}
return false;
}
}
Я знаю, что я мог бы просто передать ValueObject методу, но в реальной жизни addToCollection()
является немного более сложным.
Возможно ли вообще протестировать этот метод с помощью PHPUnit или я должен переделать его с помощью DI?
Благодаря
Несомненно, это возможно проверить, однако его невозможно проверить самостоятельно. Является ли 'ValueObject' частью вашего API? – hek2mgl
Если у вас есть getter для Collection [], вы можете получить его после 'addToCollection' и утверждать, что он был создан с правильными аргументами. иначе вы могли бы просто утвердить ответ true/false. – DanR