2010-12-20 11 views
1
Public Class Class1 

Public OutPut As String = "" 
Public StoreThis As String = "" 

Public Function GiveOutPut(ByVal s As String) As String 

    OutPut = s + " OutPut" 

    If s = "S" Then 
     CallThis() 
    End If 

    Return OutPut 

End Function 

Public Sub CallThis() 

    ///pretend something useful is going on here 

End Sub 

End Class 

この例は非常に弱いですが、入力パラメータs = "S"があるたびにCallThis()が呼び出されることを証明するテストメソッドをどのように記述できますか?サブルーチンが呼び出されたことを確認する単体テストを書くにはどうすればよいですか?

答えて

3

有用なものがCallThisにある場合は、テストコードで副作用を検出できます。

たとえば、変数がこの関数によって特定の方法で値を変更した場合、呼び出しの前後でその値をテストできます。

1

これは最善の方法ではありませんが、2番目のサブルーチンで設定するクラスレベルのブール変数を設定し、その変数をテストで確認します。

Public Class Class1 

Public OutPut As String = "" 
Public StoreThis As String = "" 
Public Success as Boolean = False 

    Public Function GiveOutPut(ByVal s As String) As String  
     OutPut = s + " OutPut"  
     If s = "S" Then 
     CallThis() 
     End If 
     Return OutPut 
    End Function 

    Public Sub CallThis() 
    ///pretend something useful is going on here 
    Success = True 
    End Sub 

End Class 
1

NCoverやTFSコードカバレッジのようなツールは、コードのどの部分が呼び出されたかをアナシストします。また、テストでouputのためにdebug.writelineを使用することもできます。

0

CallThisには、テストできる外部効果が必要です。このコードを自分で作成する場合は、変数scopeを使用します。クラス内でCallThisメソッドを呼び出す前にこの変数をfalseに設定し、CallThisメソッド内でtrueに設定してから、テストでtrueになったことを確認します。

0

Rhino MocksやMoqなどの分離フレームワークを使用

関連する問題