2009-09-16 5 views
3

J'ai hérité du code de test unitaire qui me donne un avertissement de dévalorisation, car il utilise « Assertion.AssertEquals »:Quel est le "chemin de mise à niveau" de Assertion.AssertEquals?

avertissement CS0618: « NUnit.Framework.Assertion » est obsolète: « classe Utiliser la place Assertion »

Cependant, je ne peux pas voir la méthode évidente dans la classe Assert que je devrais utiliser à la place? AssertEquals prend deux objets et un message qui peut être utilisé pour signaler l'erreur en cas de défaillance.

par exemple.

 Assertion.AssertEquals(
      "Enqueuing first item should set count to 1", 
      1, pq.Count); 

Quelle est la méthode équivalente dans la classe Assert?

Répondre

8

La réponse Jon Skeet a présenté les points à la soi-disant modèle "Classic", alors que John Gietzen's réponse fait référence au modèle "à base de contraintes". Les deux ont raison et tous deux offrent la possibilité de transmettre un message en cas d'échec.

Permettez-moi de conclure ceci:

"Classic" modèle

Assert.AreEqual(1, pq.Count, 
    "Enqueuing first item should set count to 1"); 

"à base de contraintes" modèle

Assert.That(
    pq.Count, 
    Is.EqualTo(1), 
    "Enqueuing first item should set count to 1"); 

Je préfère cette dernière un car il se lit plus comme une phrase .

+0

Vrai ... si vous avez combiné vos commentaires en une seule réponse je marquerais cela comme accepté –

4
Assert.That(a, Is.EqualTo(b), 
    "Enqueuing first item should set count to 1"); 
+0

Ouais, mais qui ne tient pas le moi ssage! –

+0

'Assert.That (a, Is.EqualTo (b)," FAILURE ")' –

5

Que diriez-vous ceci:

Assert.AreEqual(1, pq.Count, 
       "Enqueuing first item should set count to 1"); 
0

Effectuez une regex complète remplacerons:

Assertion\.AssertEquals(\(.*\),\(.*\),\(.*\)) 

doit être remplacé par:

Assert.That(\2, \1, \0) 

Et Assertion.Assert(\(.*\),\(.*\))

doit être remplacé par:

Assert.That(\2, \1) 
Questions connexes