2009-09-16 2 views
3

Я унаследовал некоторый блок тестовый код, который дает мне предупреждение устаревания, потому что он использует «Assertion.AssertEquals»:Что такое «путь обновления» от Assertion.AssertEquals?

предупреждение CS0618: «NUnit.Framework.Assertion» устарела: «Использование Assert класса вместо»

Однако я не вижу очевидного метода в классе Assert, который я должен использовать вместо этого?

AssertEquals принимает два объекта и сообщение, которое может быть использовано для сообщения об ошибке, если есть сбой. например

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

Что такое эквивалентный метод в классе Assert?

ответ

8

Ответ Jon Skeet представлены точки к так называемой «Classic» модели, тогда как John Gietzen's ответ относится к «Вариация на основе» модели. Оба являются правильными, и оба они предоставляют возможность передать сообщение для случая сбоя.

Поэтому позвольте мне закончить это:

"Классика" модель

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

"Constraint на основе" модели

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

Я предпочитаю второй один, так как он читает больше как приговор ,

+0

Правда ... если бы вы объединили свои комментарии в один ответ, я бы отметил это как принятое –

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

Да, но, игнорирующий меня Ssage! –

+0

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

5

Как об этом:

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

ли заменить полное регулярное выражение:

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

следует заменить:

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

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

следует заменить:

Assert.That(\2, \1) 
Смежные вопросы