2012-07-10 63 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

相關問題