IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Test unitaire Assert.AreEqual et Assert.AreEqual<T> ne fonctionnent pas


Sujet :

C#

  1. #1
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut Test unitaire Assert.AreEqual et Assert.AreEqual<T> ne fonctionnent pas
    Salut,

    J'ai un souci avec ce test unitaire :

    J'ai créé la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            [Serializable]
            public class SerializableClass {
                public int Id { get; set; }
                public string Name { get; set; }
                public SerializableClass[] Sons { get; set; }
                public SerializableClass() {
                }
     
            }
    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
    39
     
            [TestMethod]
            public void DeserializeTest()
            {
                string toDeserialize = @"<?xml version=""1.0"" encoding=""utf-16""?>
    <SerializableClass xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
      <Id>0</Id>
      <Name>00</Name>
      <Sons>
        <SerializableClass>
          <Id>10</Id>
          <Name>10</Name>
        </SerializableClass>
        <SerializableClass>
          <Id>11</Id>
          <Name>11</Name>
        </SerializableClass>
      </Sons>
    </SerializableClass>";
                SerializableClass Level10 = new SerializableClass();
                SerializableClass Level11 = new SerializableClass();
                SerializableClass Level0 = new SerializableClass();
     
                Level10.Id = 10;
                Level10.Name = "10";
                Level11.Id = 11;
                Level11.Name = "11";
                Level0.Id = 00;
                Level0.Name = "00";
                List<SerializableClass> lstSons = new List<SerializableClass>();
                lstSons.Add(Level10);
                lstSons.Add(Level11);
                Level0.Sons = lstSons.ToArray();
                SerializableClass expectedResult = Level0;
     
                SerializationTools<SerializableClass> serializationTools = new SerializationTools<SerializableClass>();
                SerializableClass result = serializationTools.Deserialize(toDeserialize);
                Assert.AreEqual<SerializableClass>(expectedResult, result);
            }
    Le but du test est de vérifier Deserialize qui est dans une classe SerializationTools<T>.

    En debug, ça fonctionne, dans le watch les deux objets sont pareils mais le Assert me revoie faux.

    D'après vous, il me manque un grain ou j'ai fait une bêtise ?

    Merci

  2. #2
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut
    J'ai fait ça, ça fonctionne mais je ne sais pas si c'est "recevable".
    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
    39
    40
     
            [TestMethod]
            public void SerializeAndDeserialize()
            {
                string toDeserialize = @"<?xml version=""1.0"" encoding=""utf-16""?>
    <SerializableClass xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
      <Id>0</Id>
      <Name>00</Name>
      <Sons>
        <SerializableClass>
          <Id>10</Id>
          <Name>10</Name>
        </SerializableClass>
        <SerializableClass>
          <Id>11</Id>
          <Name>11</Name>
        </SerializableClass>
      </Sons>
    </SerializableClass>";
                SerializableClass Level10 = new SerializableClass();
                SerializableClass Level11 = new SerializableClass();
                SerializableClass Level0 = new SerializableClass();
     
                Level10.Id = 10;
                Level10.Name = "10";
                Level11.Id = 11;
                Level11.Name = "11";
                Level0.Id = 00;
                Level0.Name = "00";
                List<SerializableClass> lstSons = new List<SerializableClass>();
                lstSons.Add(Level10);
                lstSons.Add(Level11);
                Level0.Sons = lstSons.ToArray();
                SerializableClass expectedResult = Level0;
     
                SerializationTools<SerializableClass> serializationTools = new SerializationTools<SerializableClass>();
                SerializableClass result = serializationTools.Deserialize(toDeserialize);
     
                Assert.IsTrue(serializationTools.Serialize(result) == serializationTools.Serialize(Level0));
            }
    D'après vous ?

Discussions similaires

  1. L'usage d'assert dans tests unitaires pour les jeux vidéos
    Par Neckara dans le forum Création de jeux vidéo
    Réponses: 28
    Dernier message: 01/04/2015, 12h52
  2. Tests Unitaires - Production de documents
    Par giviz dans le forum Test
    Réponses: 13
    Dernier message: 07/02/2005, 08h41
  3. Tests unitaires en C#
    Par Bouboubou dans le forum Test
    Réponses: 2
    Dernier message: 01/10/2004, 13h03
  4. [TESTS] Tests unitaires
    Par mathieu dans le forum Test
    Réponses: 4
    Dernier message: 08/01/2004, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo