SlaMidtfyn's Wiki site : TddDemo

Home :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Test Driven Development eksempel


Opret klasse med kun en konstruktor og ikke andet
Sale.vb
Public Class Sale
    Public Sub New()

    End Sub
End Class

Opret test klasse ved hjælp af funktionerne i VS
SaleTest.vb
  <TestMethod()> _
    Public Sub SaleConstructorTest()
        Dim target As Sale = New Sale
        Assert.Inconclusive("TODO: Implement code to verify target")
    End Sub

Skriv test og tilføj eventuelle parametre og properties til klassen og se testen fejle
SaleTest.vb
  <TestMethod()> _
    Public Sub SaleConstructorTest()
        Dim Order As New Order
        Order.Product = New Product() With {.Value = 10}
        Order.Amount = 100
        Dim target As Sale = New Sale(Order)
        Assert.AreEqual(Order.Amount * Order.Product.Value, target.SaleValue)
    End Sub

Sale.vb
  Public Sub New(ByVal order As Order)

    End Sub

    Public ReadOnly Property SaleValue() As Single?
        Get
            Return Nothing
        End Get
    End Property

Skriv kode og se testen gå godt
Sale.vb
Public Class Sale
    Public Sub New(ByVal order As Order)
        If order.Product IsNot Nothing Then
            _SaleValue = order.Amount * order.Product.Value
        End If
    End Sub

    Private _SaleValue As Integer
    Public ReadOnly Property SaleValue() As Single?
        Get
            Return _SaleValue
        End Get
    End Property
End Class

Opret eventuelle metoder i klassen uden parametre og indhold
Sale.vb
    Public Function SaleReport() As String
        Return Nothing
    End Function

Opret test metoder ved hjælp af funktionerne i VS
SaleTest.vb
  <TestMethod()> _
    Public Sub SaleReportTest()
        Dim order As Order = Nothing ' TODO: Initialize to an appropriate value
        Dim target As Sale = New Sale(order) ' TODO: Initialize to an appropriate value
        Dim expected As String = String.Empty ' TODO: Initialize to an appropriate value
        Dim actual As String
        actual = target.SaleReport
        Assert.AreEqual(expected, actual)
        Assert.Inconclusive("Verify the correctness of this test method.")
    End Sub

Skriv test og tilføj eventuelle parametre til metoden for at kunne kompilere, men testen fejler stadig
SaleTest.vb
     <TestMethod()> _
    Public Sub SaleReportTest()
        Dim Order As New Order
        Order.Product = New Product() With {.Name = "Product1", .Value = 10}
        Order.Client = New Client() With {.Name = "Client1"}
        Dim target As Sale = New Sale(Order) ' TODO: Initialize to an appropriate value
        Dim SalesDate = New Date(2009, 2, 28)
        Dim expected As String = String.Join(";", New String() {SalesDate, Order.Client.Name, Order.Product.Name, Order.Amount, Order.Product.Value, Order.Amount * Order.Product.Value})
        Dim actual = target.SaleReport(SalesDate)
        Assert.AreEqual(expected, actual)
    End Sub

Sale.vb
    Public Function SaleReport(ByVal salesDate as Date) As String
        Return Nothing
    End Function

Skriv koden til metoden og se testen gå godt
Sale.vb
    Public Function SaleReport(ByVal salesDate As Date) As String
        Return String.Join(";", New String() {salesDate, _Order.Client.Name, _Order.Product.Name, _Order.Amount, _Order.Product.Value, SaleValue})
    End Function

 Comments [Hide comments/form]
QPXGzd <a href="http://todwziqsoqlu.com/">todwziqsoqlu</a>, [url=http://etctllmcmrkj.com/]etctllmcmrkj[/url], [link=http://fjidktszvbno.com/]fjidktszvbno[/link], http://ccwhgjujeolo.com/
-- ip-95-220-185-138.bb.netbynet.ru (2010-06-08 13:05:55)
ZhFJGi <a href="http://xuyxmqkfqhho.com/">xuyxmqkfqhho</a>, [url=http://bzyhpflnffym.com/]bzyhpflnffym[/url], [link=http://yabgsyvoowyb.com/]yabgsyvoowyb[/link], http://foiancsrzuqh.com/
-- ip-95-220-153-255.bb.netbynet.ru (2010-07-04 12:13:04)
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in -0.7677 seconds