Faccio fatica a capire quali metodi dovrebbero essere privati e quali dovrebbero essere pubblici nella classe del componente.Pubblico o privato - Confusione di metodi di classe componente 2 angolare confusione
sembra essere abbastanza facile in servizio per giudicare se il metodo è pubblico o ad es privato:
export class MyServiceClass {
private _cache = {}; // this value is private and shouln't be accessed from outside
public accessCache(){ // it's public as it's an API method
return this._cache;
}
public setCache(newVal){
this._cache = newVal;
}
}
Seguendo questa logica tutti i metodi di componente deve essere privata perché nessuno dei metodi deve essere esposto al di fuori della classe. (secondo to that post componente e la sua vista sono un'entità)
export class MyComponent {
private _getRandomNumbers(){ // this is used in view only
/*..*/
}
}
Non c'è tragedia, ma poi nel this video si può imparare che solo i metodi pubblici di componenti devono essere testati unità. Seguendo sopra non riesco a trovare alcun motivo per avere metodi pubblici nella classe dei componenti, ma ho ancora alcuni metodi che vale la pena provare (specialmente i metodi usati in vista). Significa che sono completamente perso nel significato di metodi privati e pubblici nel mondo angolare.
Quindi la mia domanda è semplice:
quali metodi di componenti devono essere contrassegnati come pubblici e privati.
Perché la dichiarazione del video causa confusione? È normale testare solo l'API pubblica di un componente. –
Di solito si hanno input e output e dipendenze iniettati che ottengono metodi chiamati dal componente o forniscono osservabili per l'iscrizione. È anche possibile accedere al DOM risultante e testare se contiene il contenuto previsto. –
@ GünterZöchbauer È perché seguendo questa logica quando tutti i metodi nel componente sono privati (utilizzati solo internamente o in modelli di componenti) non c'è nulla da testare. –