Bonjour tout le monde,
je suis face à un problème pour implémenter un mock dans une optique de TDD (développement piloté par les tests)
J'aimerai savoir si j'ai la bonne méthode et si vous connaissez des Framework me facilitant la création d'un mock.
J'ai une classe connexion qui possède une seule méthode et un attribut:
J'ai une interface toute simple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 using System; namespace ogc { class Connexion : InterfaceConnexion { private string nomUtilisateur; //propriété de nomUtilisateur public String NomUtilisateur{ get {return nomUtilisateur;} }//nomUtilisateur public string demanderNomUtilisateur(){ Console.Write("Nom d'utilisateur: "); nomUtilisateur = Console.ReadLine(); return nomUtilisateur; } } }
Et une classe de test (j'utilise le framework NUnit):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 using System; namespace ogc { interface InterfaceConnexion { string demanderNomUtilisateur(); } }
Si j'essaye d'expliquer ce que j'ai voulu faire, j'ai créé un bouchon(stub) implémentant mon interface en redéfinissant la méthode demandeNomUtilisateur. Je peux de cette manière lancer mes tests automatisés sur une classe sans attendre une valeur en retour de la part de l'utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 using System; using NUnit.Framework; namespace ogc { public class MockConnexion : InterfaceConnexion { public string demanderNomUtilisateur() { return "wogcontact"; } } [TestFixture] public class TestConnexion { //Déclaration d'une interface de Connexion MockConnexion mockConnexion; [SetUp] public void init() { //Initialisation méthodes de test pour la classe Connexion mockConnexion = new MockConnexion(); //création d'un objet connexion } [Test] public void testDemanderNomUtilisateur() { Assert.Greater(mockConnexion.demanderNomUtilisateur().Length, 0, "Nom d'utilisateur incorrect égal à 0"); } [TearDown] public void close() { } } }
Je me pose alors une question: comment créer un mock à partir de ça pour tester ma méthode:
Et pas pour tester une redéfinition de celle ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public string demanderNomUtilisateur(){ Console.Write("Nom d'utilisateur: "); nomUtilisateur = Console.ReadLine(); return nomUtilisateur; }
Je sais pas si j'ai été très clair, mais je débute dans le TDD.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public string demanderNomUtilisateur() { return "wogcontact"; }
Est ce que mon salut se trouve du coté de Moq ou Rhino ?
Partager