Pensa a questo in termini di comportamento, non in termini di quali metodi ci sono. Il metodo chiamato method
ha un comportamento particolare se b
è true. Ha un comportamento diverso se b
è falso. Ciò significa che dovresti scrivere due test diversi per method
; uno per ogni caso.Così, invece di avere tre prove di metodo-oriented (uno per method
, uno per method1
, una per method2
, si dispone di due test comportamentali-oriented.
collegate a questo (ho suggerito questo in un altro SO filo di recente, e stato chiamato una parola di quattro lettere come risultato, quindi sentitevi liberi di prendere questo con un pizzico di sale), Trovo utile scegliere i nomi dei test che riflettono il comportamento che sto testando, piuttosto che il nome del metodo. chiamate i vostri test testMethod()
, testMethod1()
, testMethod2()
e così via.Mi piace nomi come calculatedPriceIsBasePricePlusTax()
o taxIsExcludedWhenExcludeIsTrue()
che indicano quale comportamento sto testando, quindi all'interno di ciascun metodo di test, testare solo il comportamento indicato.Per la maggior parte di questi comportamenti verrà eseguita una sola chiamata a un metodo pubblico, ma può coinvolgere molti c tutto a metodi privati.
Spero che questo aiuti.
fonte
2012-01-10 23:10:48
Sono confuso con questa risposta. Questo è beffardo, ma il titolo sta testando i metodi privati –
Ho usato Powermock per deridere il metodo privato, ma come posso testare il metodo privato con Powermock. Dove posso passare qualche input e aspettarmi un po 'di output dal metodo e quindi verificare l'output? – Rito