A volte le funzioni private di un modulo o di una classe sono unità di funzionalità interne ancora da estrarre, che potrebbero meritare i propri test. Quindi perché non provarli? In futuro scriverà per i test se / quando verranno estratti. Quindi, perché non scrivere i test ora, quando fanno ancora parte dello stesso file?
Per dimostrare:
Perprimacosa,hoscrittomodule_a
.Oravoglioscriveretestperquesto.Vorreitestarelafunzione'privata'_private_func
.Noncapiscoperchénonscriveròuntestperquesto,sepoipotreirifarlocomunquealsuomodulointerno,eallorascriveretestperquesto.
Supponiamocheabbiaunmoduloconleseguentifunzioni(potrebbeancheessereunaclasse):
defpublic_func(a):b=_do_stuff(a)return_do_more_stuff(b)
_do_stuff
e_do_more_stuff
sonofunzioni'private'delmodulo.
Capiscol'ideachedovremmotestaresolol'interfacciapubblica,nonidettaglidiimplementazione.Tuttavia,eccolacosa:
_do_stuff
e_do_more_stuff
contengonolamaggiorpartedellefunzionalitàdelmodulo.Ognunodiessipotrebbeessereunafunzionepubblicadiundiversomodulo"interno". Ma non sono ancora evoluti e abbastanza grandi da essere estratti per separare i file.
Quindi testare queste funzioni sembra giusto perché sono unità di funzionalità importanti. Se fossero in moduli diversi come funzioni pubbliche, li avremmo testati. Quindi, perché non testarli quando non sono ancora (o mai) estratti in un file diverso?