Skip to content

CASIM195/H21-tp2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 

Repository files navigation

TP2 - Énoncé

📆 À remettre pour le 3 mars 2021 à 22h

Objectifs

  • Utiliser des outils de planification et de gestion efficacement et de façon organisée
  • Utiliser des outils facilitant la collaboration
  • Gérer les exceptions du code
  • Renvoyer des exceptions HTTP formattées
  • Créer des tests unitaires et E2E
  • Ajouter des nouvelles fonctionnalités à partir de récits utilisateurs
  • Modifier des fonctionnalités existantes
  • Mettre en place un workflow d'intégration continue

À remettre

Les questions identifiées avec l'émoticône 📜 (ainsi que leurs sous-questions) devront être répondues à l'aide du fichier exercices/tp2.md déjà présent dans votre repo de projet. Lorsque votre travail sera terminé, nous vous demandons de créer un tag nommé remise2 (le nom doit être exact). C'est la version liée à ce tag qui sera corrigée. Si vous omettez d'indiquer le tag, la note de 0 vous sera attribuée.

Partie 1 - Outils de planification (25%)

Avant d'entamer la programmation, nous vous demandons de lire attentivement les exigences du tp. Nous vous demandons ensuite de planifier vos tâches de développement logiciel avec Github.

  1. 📜 Créez un milestone pour la remise du tp. Insérez une capture d'écran afin de montrer les informations du milestone ainsi que les issues qu'il contient.
  2. 📜 Créez des issues afin de suivre votre progrès et de vous séparer la tâche. ⚠️ Attention Ce n'est pas nécéssairement 1 issue pour 1 feature. Assurez-vous également d'y remplir l'ensemble des parties tel que vu en laboratoire (l'issue doit au moins être en cours). Insérez une capture d'écran par issue (MAX 3).
  3. 📜 Créez des PRs afin de suivre les changements effectués ou en attente. Assurez-vous également d'y remplir l'ensemble des parties tel que vu en laboratoire. Insérez une capture d'écran par PRs une fois résolue (MAX 3). Vous n'avez pas à scroller afin de montrer le contenu des activités et commentaires.
  4. 📜 Mettez à jour le Github Project contenant vos issues. Insérez une capture d'écran montrant le tableau résultant. Elle peut être effectuée au début comme à la fin de votre progrès. Nous devons au moins y voir les colonnes ainsi que quelques issues. Une seule capture suffit (pas besoin de scroller).

Partie 2 - Outils collaboratifs (5%)

  1. En équipe, choisissez une convention de check style (linting) qui convient à tous.
  2. Configurez-la dans IntelliJ afin d'activer le formattage automatique.
  3. Ajoutez l'étape de checkstyle dans le cycle de vie Maven.

Partie 3 - Code (30%)

Pour cette partie, vous devez développer les features demandées. Les formats de requêtes et réponses utilisent la notation typée de Typescript. On s'attend à une réponse dans le format JSON pour l'ensemble des appels à l'API. Des tests automatisés vérifieront les bons retours de votre API. Nous corrigerons également la clarté (clean code), l'organisation et l'uniformisation du code.

De plus, à partir de ce TP, vous devez gérer les exceptions et retourner les réponses demandées. Le format global de toutes les exceptions est décrit ICI.

Features

Partie 4 - Tests (30%)

Pour cette partie, on vous demande de tester chaque appel à votre API, selon votre méthode préférée (Rest-Assured, Postman, etc.). Vous devez donc tester, pour chaque route d'API:

  • Les appels réussis
  • Les appels erronés
  • Les payloads
  • Les codes d'erreur
  • Les status HTTP

De plus, on s'attend à ce que l'ensemble des classes logiques soient testées unitairement, c'est-à-dire :

  • Les factories
  • Les assemblers
  • Les entites
  • Les implémentations de repositories
  • Les value objects (ex: ids, amount, etc.)
  • Toute autre classe effectuant une certaine logique (transformation, action, calcul, copiage, validation, etc.)

Détails:

  • Vous pouvez omettre les tests de Resources puisque vous aurez fait des tests E2E.
  • Pour ce TP, vous pouvez également omettre les tests de UseCases puisqu'ils forment plutôt des tests fonctionnels et d'intégrations. Ceux-ci seront vu dans un prochain TP.
  • Pour ceux étant plus avancés, on ne s'attend pas à des tests d'interactions (aka avec des Mocks et des verify).

Partie 5 - Intégration continue (10%)

Maintenant que des tests de qualité sont en place, vous pouvez avoir la confiance de pratiquer l'intégration continue. Ainsi, on vous demande de mettre en place un workflow Github Actions vous permettant d'automatiser vos tests. Votre workflow doit au moins comprendre les tâches suivantes :

  • Linting
  • Compilation
  • Unit-tests
  • E2E tests

Vous devez également déterminer le nombre de jobs qui sont nécéssaires ainsi que leurs dépendances.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors