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:
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;
        }
    }
}
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
 
using System;
namespace ogc
{
    interface InterfaceConnexion
    {
        string demanderNomUtilisateur();
    }
}
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
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() { }
    }
}
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.
Je me pose alors une question: comment créer un mock à partir de ça pour tester ma méthode:

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;
        }
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
 
public string demanderNomUtilisateur()
        {
            return "wogcontact";
        }
Je sais pas si j'ai été très clair, mais je débute dans le TDD.
Est ce que mon salut se trouve du coté de Moq ou Rhino ?