2010-07-30 4 views

ответ

7

Быстро вперед четыре года и NUnit теперь поддерживает этот (текущая версия v2.6 - я не проверял, какая версия была введена).

Assert.That(() => nullNodeList.GetEnumerator().Current, 
    Throws.InvalidOperationException); 
1

почему бы не сказать:

Assert.Throws<InvalidOperationException>(
    () => nullNodeList.GetEnumerator().Current); 
+0

им работать с C# 2.0:/ – atamanroman

+1

Вы все еще должны сделать фактический (выбросить) назначение и держать {}, так: (() => {вар х = nullNodeList.GetEnumerator(). Current;}) – nashwan

6
Assert.Throws<InvalidOperationException>(
    delegate { object current = nullNodeList.GetEnumerator().Current; }); 
+0

большое спасибо. это было легко (но не очень интуитивно понятно) – atamanroman

+0

@ Антон Привет Антон Я хотел бы знать, является ли это способом использования для проверки свойства readonly класса, который является общедоступным? – Deeptechtons

1

Вы могли бы попытаться назначить его переменной или попробовать перечисляя:

Assert.Throws<InvalidOperationException>(delegate 
{ 
    // Current is a property as we all know 
    object current = nullNodeList.GetEnumerator().Current; 
});