如何测试构建配置设置的消息?

时间:2012-07-10 05:51:11

标签: asp.net-mvc vb.net tdd

我有一个字符串显示在我的所有页面上,以指示系统内置的模式(即Debug,Beta,Release等)。该字符串是使用编译器条件(VB中的#If)设置的,因此它将根据我们所处的构建模式自动更改。

我为此编写了一个测试,它也使用编译器条件(与实时代码完全相同),问题是,如果不在我的所有不同构建下运行我的测试,我无法验证它为所有构建生成正确的字符串。< / p>

这是我的代码:

        Public Sub AssertHasMessageForBuild()
            Dim message As String = Nothing
#If DEBUG Then
            message = "DEBUG MODE"
#ElseIf BETA Then
            message = "BETA"
#End If

            If Not String.IsNullOrEmpty(message) Then
                Assert.AreEqual(message, ViewData("DebugMessage"))
            Else
                CollectionAssert.DoesNotContain(ViewData, "DebugMessage")
            End If
        End Sub

1 个答案:

答案 0 :(得分:1)

TDD并不是真正的测试机制;它是一种帮助您思考课程设计和责任的机制。

您可能希望分离出两个职责 - 检测您所处的模式,并创建消息。然后,您可以TDD创建消息,使模式检测成为您不能轻易TDD的系统的唯一部分。

但你仍然可以手动测试它。有时这是唯一的出路。如果您更改了它,请确保再次手动测试它(您可能需要相应地添加注释)。