4. Prenaquoi ?
• Ecriture des tests en premier
• Avantages
• Testabilité
• Qualité
• Maintenabilité
5. Le cycle
• Créer un test
• Faire compiler le test
• Echouer au test
• Simuler/Implémenter/Trianguler le test
• Passer le test
• Remanier le code
6. Créer le test
[TestMethod]
public void TodoToTodoDTO()
{
var todo = new Todo { Name = ‘’A faire’’ };
var todoDTO = TodoFactory.CreateDTO(todo);
Assert.AreEqual(todo.Name, todoDTO.Name)
}
OK
7. Faire compiler le test
public class Todo
{
public string Name { get; set; }
}
public class TodoDTO
{
public string Name { get; set; }
}
OK
OK
8. Echouer au test
public static class TodoFactory
{
public static TodoDTO CreateDTO(Todo todo)
{
throw new NotImplementedException();
}
}
OK
OK
OK
9. Implementer le test
• Simulation : retour d’une constante par exemple
• Implémentation : code réel
• Triangulation : plusieurs exemples qu’on généralise
OK
OK
OK
10. Implementer le test
public static class TodoFactory
{
public static TodoDTO CreateDTO(Todo todo)
{
return new TodoDTO { Name = todo.Name };
}
}
OK
OK
OK
OK
11. Passer le test
[TestMethod]
public void TodoToTodoDTO()
{
var todo = new Todo { Name = ‘’A faire’’ };
var todoDTO = TodoFactory.CreateDTO(todo);
Assert.AreEqual(todo.Name, todoDTO.Name)
}
OK
OK
OK
OK
OK
12. Remanier le code
• Don't Repeat Yourself
• Définir des interfaces
• Assurer la testabilité
OK
OK
OK
OK
OK
OK
13. Compléments
• Rester simple !
• Une idée des timings ?
• Créer/Implémenter/Passer le test : 5 min
• Remanier le code : 10 min
• Mock et stubs à la rescousse