Package caseine.tags

Annotation Interface ToCheck


@Retention(RUNTIME) @Target({TYPE,CONSTRUCTOR,FIELD,METHOD}) public @interface ToCheck
Pour vérifier l'existence dans le code de l'étudiant du fragment annoté et également l'équivalence de certaines propriétés.
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

  1. 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

  2. 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.
  3. 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.

See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Utile seulement dans le cas où l'élément annoté est une méthode ou un constructeur
    Utile seulement dans le cas où l'élément annoté est une classe
    double
    définit le nombre de points attribués à la réussite de ce test ou une valeur relative si le tag RelativeEvaluation est employé.
     
    int
    définit l'ordre de priorité croissante du test généré dans sa classe de tests unitaires
    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 value
      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é.
      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 checkImplements
      Utile 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 checkExceptions
      Utile 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 priority
      dé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 grade
      définit le nombre de points attribués à la réussite de ce test ou une valeur relative si le tag RelativeEvaluation est employé.

      Un grade négatif ou nul est ignoré.

      Returns:
      le grade.
      See Also:
      Default:
      4.9E-324
    • requiersUnitTestsBefore

      String[] requiersUnitTestsBefore
      dé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:
      {}