2015-10-21 15 views
6

I'm esegue test java JUnit4 puri sui miei file java puri sul mio progetto ma non riesco a trovare un modo per utilizzare @VisibleForTesting chiaramente senza rendere pubblica manualmente la cosa.Come utilizzare VisibleForTesting per i test JUnit puri

Es:

@VisibleForTesting 
public Address getAddress() { 
    return mAddress; 
} 

Il metodo deve essere public a Let It Be "pubblico" per i test, ma in quel caso l'annotazione non ha senso giusto? perché non usare un commento solo se l'annotazione non farà nulla?

risposta

18

Rendi il metodo pacchetto-privato e il test sarà in grado di vederlo, se il test è nel pacchetto di test corrispondente (stesso nome del pacchetto del codice di produzione).

@VisibleForTesting 
Address getAddress() { 
    return mAddress; 
} 

Considera anche il refactoring del codice in modo non c'è bisogno di testare in modo esplicito un metodo privato, provare a testare il comportamento di un'interfaccia pubblica. Il codice che è difficile da testare può essere un'indicazione che è possibile apportare miglioramenti al codice di produzione.

Il punto di un'annotazione è la sua convenzione e potrebbe essere utilizzato nell'analisi del codice statico, mentre un commento non potrebbe.

Problemi correlati