奇怪的 nUnit 单元测试失败 [英] Weird nUnit unit test failure

查看:70
本文介绍了奇怪的 nUnit 单元测试失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 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 单元测试失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆