2013-07-30 2 views
0

Ниже мой код и я использую тестовый проект доступен в Visual Studio 2008Как создать тестовый метод для экземпляра одноплодной класса в VB.NET

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

В то время как вы используете Assert.AreNotEqual() правильно, называние expected немного странно. Лучшее имя, вероятно, notExpected. Или просто оставьте переменную expected и перейдите в Nothing прямо на номер Assert.AreNotEqual().

Кроме того, одиночные игры - опасные вещи. Ваш тест будет при вызове GetInstance создать новый Calculator. Следующий тест, который вызывает GetInstance, однако, не будет создавать новый Calculator, но повторное использование первого теста. Вы сделали то, что вы ввели зависимость между тестами. Это то, чего вы обычно не хотите иметь. Я советую вам не использовать сингл.

Смежные вопросы