使用NUnit 2.6检查异常的属性

kni*_*ttl 7 c# nunit

使用NUnit 2.6来检查异常属性的相等性最常用的方法是什么?

代码我想写,但不会工作:Expected 3, but was <empty>

Assert.That(() => someObject.MethodThrows(),
  Throws.TypeOf<SomeException>().With.Property("Data").Count.EqualTo(3), /* Data is a collection */
  "Exception expected");
Run Code Online (Sandbox Code Playgroud)

我可以使用嵌套Assert表达式,但这似乎过于复杂和不必要:

  Assert.AreEqual(3,
    Assert.Throws<SomeException>(
      () => someObject.MethodThrows(),
      "Exception expected").Data.Count);
Run Code Online (Sandbox Code Playgroud)

编辑实际上,第一个代码示例确实有效.在发布这个问题之前,我不知道为什么它没有多次工作

cki*_*tel 1

我无法与 NUnit 2.6 对话,但在 NUnit 2.5 上进行以下测试:

Public Class MyException
    Inherits Exception
    Public Property SomeList As New List(Of String) From {"hello", "world"}
End Class

<TestFixture()>
Public Class TestClass1
    Public Shared Sub DoSomething()
        Throw New MyException()
    End Sub

    <Test()>
    Public Sub TestExample()
        Assert.That(Sub() DoSomething(), Throws.TypeOf(Of MyException)().With.Property("SomeList").Count.EqualTo(3))
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

产生以下错误消息:

Expected: <ClassLibrary1.MyException> and property SomeList property Count equal to 3
But was:  < "hello", "world" >
Run Code Online (Sandbox Code Playgroud)

这是否只是 NUnit 2.6 beta 中的回归?