2010-07-30 26 views

Trả lời

7

nhanh về phía trước bốn năm và NUnit bây giờ hỗ trợ này (phiên bản hiện tại là v2.6 - Tôi chưa kiểm tra phiên bản nào đã được giới thiệu).

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

tại sao không nói:

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

im làm việc với C# 2.0:/ – atamanroman

+1

Bạn vẫn sẽ cần phải làm một thực tế (vứt bỏ) phân công và giữ {}, vì vậy: (() => {var x = nullNodeList.GetEnumerator(). Hiện tại;}) – nashwan

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

cảm ơn bạn rất nhiều. điều này thật dễ dàng (nhưng không phải rất trực quan) – atamanroman

+0

@Anton Hi anton Tôi muốn biết đây có phải là cách để sử dụng để Kiểm tra tính chất chỉ đọc của một lớp được công khai không? – Deeptechtons

1

Bạn có thể thử gán nó vào một biến hoặc thử liệt kê:

Assert.Throws<InvalidOperationException>(delegate 
{ 
    // Current is a property as we all know 
    object current = nullNodeList.GetEnumerator().Current; 
}); 
Các vấn đề liên quan