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()?
答案 0 :(得分:3)
如果在CallThis
中发生了有用的事情,您可以检测测试代码中的副作用。
例如,如果变量通过此函数以特定方式更改值,则可以在调用之前和之后测试其值。
答案 1 :(得分:1)
不确定这是最好的方法,但我会设置一个类级别的布尔变量,第二个子例程将设置,然后在测试中检查该变量。像这样:
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
答案 2 :(得分:1)
NCover或TFS Code Coverage等工具将分析您的代码的哪些位被调用。您还可以在测试中使用debug.writeline作为输出。
答案 3 :(得分:0)
你需要让CallThis产生一些你可以测试的外部效果。如果你自己编写代码,那么使用变量作用域,例如:在类中,在调用CallThis方法之前,将此变量设置为false,然后在CallThis方法中,将其设置为true - 然后将其设置为在测试中变为true。
答案 4 :(得分:0)
使用隔离框架,例如Rhino Mocks或Moq