I have 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
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
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.
NOTE: in the declaration of the ExpectedException I get an obsolete warning stating that instead of
<ExpectedException(GetType(ArgumentOutOfRangeException), 'Line No exceeds 4 characters')>
it should be
<ExpectedException(GetType(ArgumentOutOfRangeException), ExpectedException='Line No exceeds 4 characters')>
However this throws a ExpectedException is not declared error!
Ok. Just run this.
The message for the exception is:
(Including the line break)
You need to specify this all of this as the expected message: