Suche…


Bemerkungen

Dies ist das einfachste, aber beschreibende Beispiel für das Komponententestverfahren. Fühlen Sie sich frei, weitere Methoden hinzuzufügen, um verschiedene Datentypen zu überprüfen.

Unit-Test für Steuerberechnung

Dieses Beispiel ist in zwei Säulen unterteilt

  • Gehaltsberechnungsklasse : Berechnung des Nettogehalts nach Steuerabzug
  • SalaryCalculationTests-Klasse : Zum Testen der Methode, die den Nettolohn berechnet

Schritt 1: Erstellen Sie eine Klassenbibliothek, nennen Sie sie WagesLibrary oder einen beliebigen Namen. Benennen Sie dann die Klasse in SalaryCalculation um

'' '' '' Class für Gehaltsberechnungen '' 'Public Class SalaryCalculation

    ''' <summary>
    ''' Employee Salary
    ''' </summary>
    Public Shared Salary As Double

    ''' <summary>
    ''' Tax fraction (0-1)
    ''' </summary>
    Public Shared Tax As Double

    ''' <summary>
    ''' Function to calculate Net Salary
    ''' </summary>
    ''' <returns></returns>
    Public Shared Function CalculateNetSalary()
        Return Salary - Salary * Tax
    End Function
End Class

Schritt 2 : Erstellen Sie ein Unit-Test-Projekt. Fügen Sie der erstellten Klassenbibliothek einen Verweis hinzu und fügen Sie den folgenden Code ein

Imports WagesLibrary 'Class library you want to test

''' <summary>
''' Test class for testing SalaryCalculation
''' </summary>
<TestClass()> Public Class SalaryCalculationTests

    ''' <summary>
    ''' Test case for the method CalculateNetSalary
    ''' </summary>
    <TestMethod()> Public Sub CalculateNetSalaryTest()
        SalaryCalculation.Salary = 100
        SalaryCalculation.Tax = 0.1
        Assert.AreEqual(90.0, SalaryCalculation.CalculateNetSalary(), 0.1)
    End Sub
End Class

Assert.Equal überprüft den erwarteten Wert mit dem tatsächlich berechneten Wert. Der Wert 0.1 wird verwendet, um Toleranz oder Abweichung zwischen erwartetem und tatsächlichem Ergebnis zu ermöglichen.

Schritt 3: Führen Sie den Test der Methode aus, um das Ergebnis zu sehen Geben Sie hier die Bildbeschreibung ein

Testergebnis Geben Sie hier die Bildbeschreibung ein

Testen der von Mitarbeitern zugewiesenen und abgeleiteten Eigenschaften

In diesem Beispiel stehen mehr Tests für Komponententests zur Verfügung.

Employee.vb (Klassenbibliothek)

''' <summary>
''' Employee Class
''' </summary>
Public Class Employee

    ''' <summary>
    ''' First name of employee
    ''' </summary>
    Public Property FirstName As String = ""

    ''' <summary>
    ''' Last name of employee
    ''' </summary>
    Public Property LastName As String = ""

    ''' <summary>
    ''' Full name of employee
    ''' </summary>
    Public ReadOnly Property FullName As String = ""

    ''' <summary>
    ''' Employee's age
    ''' </summary>
    Public Property Age As Byte

    ''' <summary>
    ''' Instantiate new instance of employee
    ''' </summary>
    ''' <param name="firstName">Employee first name</param>
    ''' <param name="lastName">Employee last name</param>
    Public Sub New(firstName As String, lastName As String, dateofbirth As Date)
        Me.FirstName = firstName
        Me.LastName = lastName
        FullName = Me.FirstName + " " + Me.LastName
        Age = Convert.ToByte(Date.Now.Year - dateofbirth.Year)
    End Sub
End Class

EmployeeTest.vb (Testprojekt)

Imports HumanResources

<TestClass()>
Public Class EmployeeTests
    ReadOnly _person1 As New Employee("Waleed", "El-Badry", New DateTime(1980, 8, 22))
    ReadOnly _person2 As New Employee("Waleed", "El-Badry", New DateTime(1980, 8, 22))

    <TestMethod>
    Public Sub TestFirstName()
        Assert.AreEqual("Waleed", _person1.FirstName, "First Name Mismatch")
    End Sub

    <TestMethod>
    Public Sub TestLastName()
        Assert.AreNotEqual("", _person1.LastName, "No Last Name Inserted!")
    End Sub

    <TestMethod>
    Public Sub TestFullName()
        Assert.AreEqual("Waleed El-Badry", _person1.FullName, "Error in concatination of names")
    End Sub

    <TestMethod>
    Public Sub TestAge()
        Assert.Fail("Age is not even tested !") 'Force test to fail !
        Assert.AreEqual(Convert.ToByte(36), _person1.Age)
    End Sub

    <TestMethod>
    Public Sub TestObjectReference()
        Assert.AreSame(_person1.FullName, _person2.FullName, "Different objects with same data")
    End Sub
End Class

Ergebnis nach laufenden Tests

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow