Annotation Interface ToCheck
- Author:
- Yvan Maillot <yvan.maillot@uha.fr>
L'annotation @caseine.tags.ToCheck
L'annotation @ToCheck engendre une évaluation qui vérifie l'existence et les propriétés du fragment annoté.
Cible
@ToCheck s'applique à
- un type (externe)
- une classe
- une interface
- un type d'annotation
- un type énuméré
- un attribut
- une méthode
- un constructeur
Formes d'emploi
@ToCheck s'emploie
- comme une annotation multivaluée : (e.g.
@ToCheck(checkImplements = CheckImplements.NONE, grade = 1, modifiers = {CheckModifier.isAbstract, CheckModifier.isPrivate}, priority = 2, requiersUnitTestsBefore = "1", value = "consigne")Voir la documentation des propriétés
- comme une annotation monovaluée : (e.g. @ToCheck("consigne à l'étudiant")) où "consigne à l'étudiant" est le message à afficher en cas d'erreur et toutes autres propriétés ont leur valeur par défaut.
- comme une annotation de marquage (e.g. @ToCheck)
Dans ce cas, toutes les propriétés ont leur valeur par défaut
Utilisation de la propriété requiersUnitTestsBefore
Cette propriété est un tableau de chaînes de caractères (
String[]) dont chaque élément doit être:- soit une chaîne de caractères convertible en entier (e.g. "2")
Dans ce cas, cela signifie que toutes les évaluations automatiques de priorité égale à cet entier converti (e.g. toutes les évaluations de priorité 2) doivent réussir pour que celle-ci réussisse. - soit une chaîne de caractères qui représente le nom pleinement qualifié
d'un test unitaire accessible existant ou écrit par l'enseignant (e.g.
"edu.uha.miage.PointTest.checkOrigine").
Dans ce cas, cela signifie que la méthode de test unitaire (e.g. public void checkOrigine() de la classe public void edu.uha.miage.PointTest doit réussir pour que cette évaluation réussisse.
Attention aux dépendances cycliques.
- un type (externe)
- See Also:
-
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionUtile seulement dans le cas où l'élément annoté est une méthode ou un constructeurUtile seulement dans le cas où l'élément annoté est une classedoubledéfinit le nombre de points attribués à la réussite de ce test ou une valeur relative si le tagRelativeEvaluationest employé.intdéfinit l'ordre de priorité croissante du test généré dans sa classe de tests unitairesString[]définit un tableau de chaînes de caractères qui représentent des tests unitaires.Définit la consigne destinée à l'étudiant quand le test échoue.
Quand la valeur par défaut est choisie, un message standard est généré.
-
Element Details
-
value
String valueDéfinit la consigne destinée à l'étudiant quand le test échoue.
Quand la valeur par défaut est choisie, un message standard est généré.- Returns:
- la consigne destinée à l'étudiant.
- Default:
- ""
-
modifiers
CheckModifier[] modifiers- Returns:
- Les modificateurs que la version de l'étudiant doit avoir en
commun avec la solution de référence.
C'est un sous-ensemble de
- CheckModifier.isAbstract
- CheckModifier.isFinal
- CheckModifier.isInterface
- CheckModifier.isNative
- CheckModifier.isPrivate
- CheckModifier.isProtected
- CheckModifier.isPublic
- CheckModifier.isStatic
- CheckModifier.isStrict
- CheckModifier.isSynchronized
- CheckModifier.isTransient
- CheckModifier.isVolatile
Attention: isPrivate ne signifie pas qu'on vérifie que le membre est privé mais l'on vérifie que son état privé est le même que celui de la référence.
- See Also:
- Default:
- {isPrivate, isProtected, isPublic, isStatic}
-
checkImplements
CheckImplements checkImplementsUtile seulement dans le cas où l'élément annoté est une classe- Returns:
- une valeur parmi
- CheckImplements.NONE
- CheckImplements.AT_LEAST
- CheckImplements.EXACT
Si checkImplements() vaut :
- NONE : aucune vérification n'est faite
- AT_LEAST : la vérification est de s'assurer que les implémentations de la version de l'étudiant doivent au moins contenir celles de la référence
- EXACT : la vérification est de s'assurer que les implémentations de la version de l'étudiant exactement celles de la référence.
Ignoré si l'élément annoté n'est pas une classe.
- See Also:
- Default:
- NONE
-
checkExceptions
CheckExceptions checkExceptionsUtile seulement dans le cas où l'élément annoté est une méthode ou un constructeur- Returns:
- une valeur parmi
- CheckExceptions.NONE
- CheckExceptions.EXACT
Si checkExceptions() vaut :
- NONE : aucune vérification n'est faite
- EXACT : la vérification est de s'assurer que les exceptions susceptibles d'être lancées par la version de l'étudiant sont exactement celles de la référence
Ignoré si l'élément annoté n'est pas une méthode ou un constructeur.
- See Also:
- Default:
- NONE
-
priority
int prioritydéfinit l'ordre de priorité croissante du test généré dans sa classe de tests unitaires- Returns:
- l'ordre de priorité.
- Default:
- 0
-
grade
double gradedéfinit le nombre de points attribués à la réussite de ce test ou une valeur relative si le tagRelativeEvaluationest employé.
Un grade négatif ou nul est ignoré.
- Returns:
- le grade.
- See Also:
- Default:
- 4.9E-324
-
requiersUnitTestsBefore
String[] requiersUnitTestsBeforedéfinit un tableau de chaînes de caractères qui représentent des tests unitaires.Chaque chaîne de ce tableau peut être
- Soit convertible en entier, dans ce cas, elle représente tous des tests unitaires de cette priorité.
- Soit le nom pleinement qualifié d'une méthode de test unitaire.
Pour que le test unitaire annoté réussisse, il faut que tous les tests unitaires représentés dans ce tableau réussissent.
Attention aux dépendances cycliques
- Returns:
- le tableau des tests unitaires
- Default:
- {}
-