Zoeken…


Opmerkingen

Dit is het eenvoudigste maar beschrijvende voorbeeld voor de testprocedure. U kunt meer methoden toevoegen om te controleren op verschillende gegevenstypen.

Eenheidstesten voor belastingberekening

Dit voorbeeld is verdeeld in twee pijlers

  • Salarisberekening Klasse : Berekening van het netto salaris na belastingaftrek
  • SalaryCalculationTests Klasse : Voor het testen van de methode die het netto salaris berekent

Stap 1: Maak een klassenbibliotheek aan , noem deze WagesLibrary of een passende naam. Wijzig de naam van de klas in SalaryCalculation

'' '' '' Klasse voor salarisberekeningen '' 'Public Class Salarisberekening

    ''' <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

Stap 2 : Eenheidstestproject maken. Voeg een verwijzing toe naar de gemaakte klassenbibliotheek en plak de onderstaande code

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 controleert de verwachte waarde met de werkelijke berekende waarde. de waarde 0.1 wordt gebruikt om tolerantie of variatie tussen het verwachte en werkelijke resultaat mogelijk te maken.

Stap 3: Voer de test van de methode uit om het resultaat te zien voer hier de afbeeldingsbeschrijving in

Testresultaat voer hier de afbeeldingsbeschrijving in

Testen van toegewezen werknemersklasse en afgeleide eigenschappen

In dit voorbeeld zijn meer tests beschikbaar bij het testen van eenheden.

Employee.vb (Class Library)

''' <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 (testproject)

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

Resultaat na het uitvoeren van tests

voer hier de afbeeldingsbeschrijving in

voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow