Mi sto chiedendo quanto dovrei essere prolisso quando testare i progetti unitari scritti in linguaggi non tipizzati come Javascript
.
Facciamo un esempio per un linguaggio strongmente tipizzato ( C#
)
public bool Foo(MyClass myClass) { /* ... */ }
Siccome C#
è strongmente digitato posso essere sicuro che myClass
sia null
o un'istanza reale di MyClass
(o qualsiasi istanza di una sottoclasse, se possibile) quindi i miei valori testabili sono solo questi. < br>
Ora portiamo questo metodo su Javascript
:
function foo(data) { /* ... */ }
Ora non posso essere sicuro del tipo data
di come potrebbe essere qualsiasi cosa.
Dentro foo
Posso controllare quale tipo data
ha ma per assicurarmi che la funzione funzioni anche con tipi non validi dovrei testare tutti i tipi possibili nei miei test di unità che producono molto codice extra.
Questo argomento mi infastidisce soprattutto nelle lingue non tipizzate in cui non riesco a determinare il tipo effettivo semplicemente osservando il codice. Da un lato non voglio scrivere un sacco di codice per testare ogni tipo possibile. D'altra parte mi sento come se mi mancasse qualcosa se provassi solo i tipi che mi aspetto.
Esistono raccomandazioni generali o best practice per questo problema?