2012-07-10 64 views
1

我有一个字符串显示在我的所有页面上,以指示系统内置的模式(即Debug,Beta,Release等)。该字符串使用编译器条件设置(#如果在VB中),以便它会根据我们所处的构建模式自动更改。如何测试构建配置设置的消息?

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

这里是我的代码:

 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

TDD是不是真的伟大测试的机制;这是帮助您思考课程设计和责任的机制。

您可能想要分出两项责任 - 检测您所处的模式并创建消息。然后你可以TDD创建消息,使模式检测成为系统中唯一不能轻易进行TDD的部分。

虽然你仍然可以手动测试它。有时候这是唯一的出路。只要确保你再次手动测试它(如果你改变了它)(你可能想相应地添加一个评论)。

+0

我很害怕你会这么说。 – 2012-07-13 12:48:44

相关问题