Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ens:cvda2016:tpachille [2016/03/31 23:27]
admin Cordier Amelie () [Tel Guillaume...]
ens:cvda2016:tpachille [2016/05/10 10:39] (Version actuelle)
admin Cordier Amelie () [Dernier tour de piste.]
Ligne 1: Ligne 1:
 ====== Introduction aux tests unitaires - Le talent d'Achille ====== ====== Introduction aux tests unitaires - Le talent d'Achille ======
 +
 +<WRAP center round tip 60%>
 +À l'issue de ce TP, vous devrez rendre un compte-rendu **manuscrit**. Le compte-rendu devra contenir, pour chaque question posée dans le TP, une réponse argumentée, ainsi qu'une copie manuscrite correctement indentée et colorée syntaxiquement du code permettant de répondre à la question. Rappelez-vous que vous passez beaucoup plus de temps à lire du code qu'à en écrire, et pour que la lecture soit agréable, il faut que le code soit présenté proprement. Comme le montrent plusieurs [[http://home.cern/about/updates/2015/04/cern-researchers-confirm-existence-force|études récentes]], l'écriture manuscrite de code est une étape de formation nécessaire et indispensable qui vous permettra d'acquérir rapidement de bons réflexes de programmation. 
 +
 +</WRAP>
 +
  
 Achille, gérant d'une grande société de divertissement a inventé un système de résolution de problème révolutionnaire et vous en confie l'implémentation. Achille, gérant d'une grande société de divertissement a inventé un système de résolution de problème révolutionnaire et vous en confie l'implémentation.
Ligne 46: Ligne 52:
  
 **Question 4.a.** Trouvez la logique. **Question 4.a.** Trouvez la logique.
 +
 **Question 4.b.** Écrivez les tests. **Question 4.b.** Écrivez les tests.
 +
 **Question 4.c.** Écrivez la ou les méthodes qui manquent pour l'achèvement de la machine révolutionnaire d'Achille. **Question 4.c.** Écrivez la ou les méthodes qui manquent pour l'achèvement de la machine révolutionnaire d'Achille.
 +
 **Question 4.d.** Olivia adore le poisson, mais déteste le poison. Est-ce que votre méthode de test fonctionne avec ces nouveaux cas ? **Question 4.d.** Olivia adore le poisson, mais déteste le poison. Est-ce que votre méthode de test fonctionne avec ces nouveaux cas ?
  
Ligne 57: Ligne 66:
  
  
 +===== Exemples de code =====
 +
 +<file java Seau.java>
 +/*
 + * To change this license header, choose License Headers in Project Properties.
 + * To change this template file, choose Tools | Templates
 + * and open the template in the editor.
 + */
 +package testsunitairesg1;
 +
 +import java.util.ArrayList;
 +
 +/**
 + *
 + * @author amelie.cordier
 + */
 +public class Seau {
 +    
 +    ArrayList seau;
 +    
 +    public Seau(){
 +        seau = new ArrayList();
 +    }
 +    
 +    public Seau(String truc1, String truc2){
 +        seau = new ArrayList();
 +        seau.add(truc1);
 +        seau.add(truc2);
 +    }
 +    
 +    public void ajouter(String chose){
 +        seau.add(chose);
 +    }
 +    
 +    public void afficher(){
 +        System.out.println(seau);
 +    }
 +        
 +    public int nbElements(){
 +        return seau.size();
 +    }
 +    
 +}
 +
 +</file>
 +
 +
 +<file java SeauTest.java>
 +/*
 + * To change this license header, choose License Headers in Project Properties.
 + * To change this template file, choose Tools | Templates
 + * and open the template in the editor.
 + */
 +package testsunitairesg1;
 +
 +import org.junit.Test;
 +import static org.junit.Assert.*;
 +
 +/**
 + *
 + * @author amelie.cordier
 + */
 +public class SeauTest {
 +    
 +    public SeauTest() {
 +    }
 +
 +    /**
 +     * Vérifie qu'un seau vide est bien vide
 +     */
 +    @Test
 +    public void testSeauVide() {
 +        Seau monseau = new Seau();
 +        assertEquals(0,monseau.nbElements());
 +    }
 +
 +    /**
 +     * Vérifie que l'ajout à un seau vide fait bien passer la taille à 1
 +     */
 +    @Test
 +    public void testAjouterASeauVide() {
 +        Seau monseau = new Seau();
 +        monseau.ajouter("patate");
 +        assertEquals(1,monseau.nbElements());
 +    }
 +
 +    /**
 +     * Vérifie que l'ajout à un seau qui contient 2 elts fait bien passer la taille à 3
 +     */
 +    @Test
 +    public void testAjouterASeau2Elts() {
 +        Seau monseau = new Seau("bli", "bli");
 +        monseau.ajouter("patate");
 +        assertEquals(3,monseau.nbElements());
 +    }
 +    /**
 +     * (redondant) vérifie le bon fonctionnement de nbElements
 +     */
 +    @Test
 +    public void testNbElements() {
 +        Seau monseau = new Seau("chose", "machin");
 +        assertEquals(2, monseau.nbElements());
 +    }
 +    
 +}
 +
 +</file>