2015-10-21 19 views
6

Używam czystych testów java JUnit4 nad moimi czystymi plikami java w moim projekcie, ale nie mogę znaleźć sposobu na łatwe użycie narzędzia @VisibleForTesting bez ręcznego upublicznienia tego.Jak korzystać z VisibleForTesting dla czystych testów JUnit

Ex:

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

Metoda musi być public pozwolić mu być „publiczne” do badań, ale w tym przypadku adnotacji nie ma sensu, prawda? dlaczego nie skorzystać z komentarza, jeśli adnotacja nic nie zmieni?

Odpowiedz

18

Utwórz metodę jako prywatną, a test będzie mógł ją zobaczyć, jeśli test znajduje się w odpowiednim pakiecie testowym (ta sama nazwa pakietu, co kod produkcyjny).

@VisibleForTesting 
Address getAddress() { 
    return mAddress; 
} 

Weź również pod uwagę refaktoryzację kodu, aby nie trzeba było jawnie testować metody prywatnej, spróbuj przetestować zachowanie publicznego interfejsu. Kod trudny do sprawdzenia może wskazywać, że można wprowadzić ulepszenia do kodu produkcyjnego.

Punkt adnotacji jest jego konwencją i może być używany w statycznej analizie kodu, natomiast komentarz nie.

Powiązane problemy