我有classX:
Sub New(ByVal item_line_no As String, ByVal item_text As String)
' check to ensure that the parameters do not exceed the file template limits
Select Case item_line_no.Length
Case Is > m_item_line_no_capacity
Throw New ArgumentOutOfRangeException(item_line_no, "Line No exceeds 4 characters")
Case Else
Me.m_item_line_no = item_line_no
End Select
Select Case item_text.Length
Case Is > m_item_free_text_capacity
Throw New ArgumentOutOfRangeException("Free Text Exceeds 130 characters")
Case Else
Me.m_item_free_text = item_text
End Select
End Sub
和下面的unti来测试一个故障点
<ExpectedException(GetType(ArgumentOutOfRangeException), "Line No exceeds 4 characters")> _
<Test()> _
Sub testLineNoExceedsMaxLength()
Dim it As New X("aaaaa", "Test")
End Sub
当我运行测试时,我希望收到异常“行号超过 4 个字符”中引发的消息
但是单元测试失败并显示以下消息
RecordTests.testLineNoExceedsMaxLength : FailedExpected exception message: Line No exceeds 4 characters
got: Line No exceeds 4 characters
Parameter name: aaaaa
我认为这很简单,但它让我发疯。
注意:在 ExpectedException 的声明中,我收到一个过时的警告,指出而不是
<ExpectedException(GetType(ArgumentOutOfRangeException), "Line No exceeds 4 characters")>
它应该是
<ExpectedException(GetType(ArgumentOutOfRangeException), ExpectedException="Line No exceeds 4 characters")>
但是,这会引发 ExpectedException is not declared 错误!