import com.google.common.annotations.VisibleForTesting;
public class Sample {
@VisibleForTesting
String load() {
//réduction
}
}
Un exemple d'utilisation détaillé est expliqué dans Sortons de la méthode statique pour écrire un test unitaire # 1 Principe / Wrap method.
Il peut être utilisé comme marqueur pour montrer qu '"il augmente la visibilité du code de test". L'annotation seule n'a pas de fonction spéciale, c'est juste un marqueur (appelé annotation de marqueur).
Par exemple, dans l'un des outils d'analyse statique SonarQube, les membres et les méthodes avec @ VisibleForTesting
sont par erreur (autre que le code de test). Il existe une règle pour vérifier si elle est accessible par le code d'une autre classe. En utilisant cette règle, il peut être possible de détecter un comportement involontaire à un stade précoce.
Comme indiqué dans JavaDoc, la plage d'accès est initialement définie de ** privé à la valeur par défaut (package). Utilisé pour ** pour passer à (privé). L'écriture de tests unitaires est suffisante par défaut et le passage à public ou protected est une mauvaise conception.
Le plugin VisibleForTesting pour SonarQube vous permet de vérifier les modificateurs d'accès incorrects.
@ VisibleForTesting
Certaines autres bibliothèques et API ont des annotations similaires.
Bibliothèque / API | Nom de classe complet |
---|---|
AssertJ | org.assertj.core.util.VisibleForTesting |
Android | androidx.annotation.VisibleForTesting |
Apache Flink | org.apache.flink.annotation.VisibleForTesting |
Recommended Posts