我有 classX:
Sub New(ByVal item_line_no As String, ByVal item_text As String)
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以及以下直到测试一个故障点
and the following unti to test one point of failure
<ExpectedException(GetType(ArgumentOutOfRangeException), "Line No exceeds 4 characters")> _ <Test()> _ Sub testLineNoExceedsMaxLength() Dim it As New X("aaaaa", "Test") End Sub当我运行测试时,我希望得到在异常行号超过 4 个字符"中抛出的消息
When I run the test I expect to get the message thrown in the exception "Line No exceeds 4 characters"
但是单元测试失败并显示以下消息
However the unit test fails with the following message
RecordTests.testLineNoExceedsMaxLength : FailedExpected exception message: Line No exceeds 4 characters got: Line No exceeds 4 characters Parameter name: aaaaa我认为这很简单,但它让我发疯.
I think the something simple but it driving me insane.
注意:在 ExpectedException 的声明中,我收到了一个过时的警告,说明不是
NOTE: in the declaration of the ExpectedException I get an obsolete warning stating that instead of
<ExpectedException(GetType(ArgumentOutOfRangeException), "Line No exceeds 4 characters")>应该是
<ExpectedException(GetType(ArgumentOutOfRangeException), ExpectedException="Line No exceeds 4 characters")>然而这会抛出一个未声明错误的预期异常!
However this throws a ExpectedException is not declared error!
推荐答案好的.只需运行这个.
异常的消息是:
行号超过 4 个字符
参数名称:aaaaa
(包括换行符)
您需要将所有这些都指定为预期消息:
You need to specify this all of this as the expected message:
<ExpectedException(GetType(ArgumentOutOfRangeException), ExpectedMessage="Line No exceeds 4 characters" & VbCrLf & "Parameter name: aaaaa")>更多推荐
奇怪的 nUnit 单元测试失败
发布评论