1

システムがどのモードで構築されたか (つまり、デバッグ、ベータ、リリースなど) を示すために、すべてのページに表示される文字列があります。文字列は、現在のビルド モードに基づいて自動的に変更されるように、コンパイラ条件 (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
4

1 に答える 1

1

TDD は、優れたテストのためのメカニズムではありません。これは、クラスの設計と責任について考えるのに役立つメカニズムです。

現在のモードを検出することと、メッセージを作成することの 2 つの責任を分離したい場合があります。その後、TDD でメッセージを作成できます。これにより、モード検出がシステムの唯一の部分であり、TDD を簡単に実行できなくなります。

ただし、手動でテストすることはできます。時にはそれが唯一の方法です。変更した場合は、必ず手動で再度テストしてください (適宜コメントを追加することをお勧めします)。

于 2012-07-12T13:31:22.783 に答える