Comment utiliser VisibleForTesting pour pure JUnit tests
Im exécution pure JUnit4 java tests sur mon pur java fichiers sur mon projet, mais je ne peux pas trouver un moyen d'utiliser @VisibleForTesting clairement sans faire la chose manuellement public.
Ex:
@VisibleForTesting
public Address getAddress() {
return mAddress;
}
La méthode doit être public
de le laisser être "public" pour les tests, mais dans ce cas, l'annotation ne fait pas de sens? pourquoi ne pas simplement utiliser un commentaire si l'annotation est pas ne rien faire?
OriginalL'auteur Caipivara | 2015-10-21
Vous devez vous connecter pour publier un commentaire.
Selon Android docs:
Exemple:
@VisibleForTesting(sinon = VisibleForTesting.PRIVÉ)
Adresse publique getAddress()
cependant, il permet d'améliorer la lisibilité globale du code. Surtout pour les nouveaux développeurs.
OriginalL'auteur Rodrigo Borba
Faire de la méthode colis-privé et le test sera en mesure de le voir, si le test est dans le package de test (même nom de paquet que le code de production).
Également envisager la refactorisation de votre code si vous n'avez pas besoin explicitement tester une méthode privée, essayez de tester le comportement d'une interface publique. Le Code qui est difficile à tester peut être une indication que des améliorations peuvent être apportées à la production de code.
Le point de l'annotation est que sa convention et pourrait être utilisée dans l'analyse statique de code, alors qu'un commentaire ne pouvait pas.
"Aussi envisager la refactorisation de votre code si vous n'avez pas besoin explicitement tester une méthode privée, essayez de tester le comportement d'une interface publique." en désaccord avec cela. parfois, vous avez besoin pour faire de l'injection de dépendances par le passage d'un ensemble d'arguments dans une classe Un qui crée un objet bof classe B. j'ai dû créer un constructeur public pour la classe B, classe A peut utiliser directement la place de la classe Bs méthode getInstance (). La accepté de répondre à fonctionné pour moi, je ne pouvais pas bouger mes unités des tests dans des packages différents pour faire ce travail. Cela semble être une solution de contournement pour moi et pour la accepté de répondre, c'est mieux.
OriginalL'auteur MikeJ
@VisibleForTesting annotation est utilisée dans le paquet-méthodes de Goyave, et ne fait pas partie de JUnit API. L'annotation est juste une balise pour indiquer la méthode peut être testé. Elle même ne doit pas être chargé dans la JVM.
OriginalL'auteur Danail Tsvetanov