Sto scrivendo unit test per un modulo in una piccola applicazione Javascript. Per mantenere l'interfaccia pulita, alcuni dettagli di implementazione sono chiusi da una funzione anonima (il solito schema JS per la privacy). Tuttavia, durante il test devo accedere/simulare/verificare le parti private.Test white-box in Javascript: come gestire la privacy?
La maggior parte dei test che ho scritto in precedenza sono stati in Python, dove non ci sono vere variabili private (membri, identificatori, qualsiasi cosa tu voglia chiamarli). Si suggerisce semplicemente la privacy tramite un trattino di sottolineatura principale per gli utenti e si ignora liberamente durante il test del codice. In linguaggi OO tipizzati staticamente, suppongo che uno possa rendere i membri privati accessibili ai test convertendoli in modo da essere protetti e sottoclasse l'oggetto da testare. In Javascript, quest'ultimo non si applica, mentre il primo sembra una cattiva pratica.
Potrei sempre tornare ai test della scatola nera e controllare semplicemente i risultati finali. È l'approccio più semplice e pulito, ma sfortunatamente non abbastanza dettagliato per le mie esigenze.
Quindi, esiste un metodo standard per mantenere le variabili private pur mantenendo alcune backdoor per i test in Javascript?
Hmm, non mi piace quando le persone prendono in giro le mie parti private – Martin