以下是我的代码,我正在使用Visual Studio 2008中提供的测试项目
Public Class Calculator
Public Shared objCalculator As Calculator = Nothing
Private Sub New()
End Sub
Public Shared Function GetInstance() As Calculator
If objCalculator Is Nothing Then
objCalculator = New Calculator
End If
Return objCalculator
End Function
End Class
测试方法
'''<summary>
'''A test for GetInstance
'''</summary>
<TestMethod()> _
Public Sub GetInstanceTest()
Dim expected As Calculator = Nothing
Dim actual As Calculator
actual = Calculator.GetInstance
Assert.AreNotEqual(expected, actual)
Assert.Inconclusive("Verify the correctness of this test method.")
End Sub
我是否按照正确的方法测试Singleton类。 我正在使用 Assert.AreNotEqual(期望,实际)这个,
答案 0 :(得分:0)
正确使用Assert.AreNotEqual()
时,expected
的命名有点奇怪。一个更好的名字可能是notExpected
。或者只是省略expected
变量并直接将Nothing
传递给Assert.AreNotEqual()
。
此外,单身人士是危险的事情。在致电GetInstance
时,您的测试会创建一个新的Calculator
。但是,调用GetInstance
的下一个测试不会创建新的Calculator
,而是重用第一个测试创建的测试。你所做的是你在测试之间引入了依赖关系。这是你通常不想要的东西。我的建议是你不要使用单身人士。