我有一个字符串显示在我的所有页面上,以指示系统内置的模式(即调试、测试、发布等)。该字符串是使用编译器条件(VB 中的#If)设置的,因此它会根据我们所处的构建模式自动更改。
我为此编写了一个测试,它也使用编译器条件(就像实时代码一样),问题是,如果不在我所有不同的构建下运行我的测试,我无法验证它为所有构建生成正确的字符串。
这是我的代码:
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