Come sviluppatore dovrei cercare un accoppiamento basso tra le classi.
Ma l'accoppiamento basso non significa "nessun accoppiamento", quindi a volte devo consentire una certa flessibilità del codice e usare "nuovo" all'interno di un modello di dominio. (Sono sicuro che tutti lo fanno nel vero codice di produzione)
Se uso "nuovo" all'interno di un metodo per creare un oggetto e devo testare questo metodo, ho riscontrato un problema. Perché non posso prendere in giro gli oggetti non posso testare il metodo in isolamento. So che posso usare l'iniezione di dipendenza o posso inviare oggetti come parametri ma non sto parlando di questi casi chiari.
Questo è accettabile nella pratica?
Esiste un modo migliore? (Non posso sempre iniettare)
Si tratta di un test unitario o di integrazione?
Esempio PHP:
class Car {
protected $objDoor;
public function createComponents() {
$this->objDoor = new Door();
}
}