dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Как тестировать абстрактный класс с помощью Unit Test'ов?

Останнє повідомлення 24-09-2008, 11:52 від OLeG aka burik. 2 відповіді.
Сортувати: Попереднє Наступне
  •  23-09-2008, 4:31 6910

    Как тестировать абстрактный класс с помощью Unit Test'ов?

    Добрый день подскажите, пожалуйста, не знающему, как тестировать абстрактный класс в VS 2008.
    Есть абстрактный класс
    AbstractBaseDescriptor
    , у него есть следующий метод
    Private Function CheckName() As Boolean
    , который я хочу протестировать. При создании Unit Test'a получил следующий код:

    DeploymentItem("Asslc.Engine.IN4.Check.dll")> _
    Public Sub CheckNameTest()
    Dim param0 As PrivateObject = Nothing ' TODO: Initialize to an appropriate value
    Dim target As AbstractBaseDescriptor_Accessor = New AbstractBaseDescriptor_Accessor(param0) ' TODO: Initialize to an appropriate value
    Dim expected As Boolean = False ' TODO: Initialize to an appropriate value
    Dim actual As Boolean
    actual = target.CheckName
    Assert.AreEqual(expected, actual)
    Assert.Inconclusive("Verify the correctness of this test method.")
    End Sub

    Вот что мне не понятно:
    1.
    Dim param0 As PrivateObject = Nothing
    - какой объект здесь создавать?
    2.
    Dim target As AbstractBaseDescriptor_Accessor = New AbstractBaseDescriptor_Accessor(param0)
    - что это за объект, если это какая-то прослойка к моему абстрактному классу, то почему в конструкторе только один параметр, в тот момент, когда в конструкторе абстрактного класса их два.
  •  24-09-2008, 2:24 6913 у відповідь на 6910

    Re: Как тестировать абстрактный класс с помощью Unit Test'ов?

    Я не знаю точної відповіді на ці питання, але хочу застерегти, це погана практика тестувати приватні методи. Тести повинні працювати тільки з публичним контрактом, якщо наплювати на це правило, то навіть невеличкі зміни в коді будуть викликати великі переробки тестів. Ну і одна за наших команд не змогла налаштувати ці акссеори на ТФС білд машині... Хоча це можливо тільки проблема досівіду.
    MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
  •  24-09-2008, 11:52 6915 у відповідь на 6913

    Re: Как тестировать абстрактный класс с помощью Unit Test'ов?

    Я полностью с Вами согласен. Через некоторое время я с этим и столкнулся. Тем более тестирование private методов противоречит концепции тестирования черным ящиком. Принцип, то какой? Сперва спроектировать класс, без реализации его методов, покрыть их Unit test' ами, а уже затем заниматься реализацией.



Переглядати як новосний Блог RSS в XML