수색…


비고

이것은 단위 테스트 절차에 대한 가장 단순하면서도 설명적인 예입니다. 다른 데이터 유형에 대해 확인하는 방법을 추가하십시오.

세금 계산을위한 단위 테스트

이 예제는 두 개의 기둥으로 나뉩니다.

  • SalaryCalculation 클래스 : 세금 공제 후 순 급여 계산
  • SalaryCalculationTests 클래스 : 순 급여를 계산하는 메소드 테스트 용

1 단계 : 클래스 라이브러리를 만들고 이름을 WagesLibrary 또는 적절한 이름으로 지정합니다. 그런 다음 클래스 이름을 SalaryCalculation으로 바꿉니다.

'' '' '급여 계산 클래스' ''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

2 단계 : 단위 테스트 프로젝트를 만듭니다. 생성 된 클래스 라이브러리에 대한 참조를 추가하고 아래 코드를 붙여 넣습니다.

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 은 예상 값을 실제 계산 된 값과 Assert.Equal 합니다. 값 0.1예상 결과와 실제 결과 사이의 허용 오차 또는 변동을 허용하는 데 사용됩니다.

3 단계 : 메소드 테스트를 실행하여 결과보기 여기에 이미지 설명을 입력하십시오.

시험 결과 여기에 이미지 설명을 입력하십시오.

직원 클래스 할당 및 파생 속성 테스트

이 예제는 단위 테스트에서 더 많은 테스트를 사용할 수 있습니다.

Employee.vb (클래스 라이브러리)

''' <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 (테스트 프로젝트)

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

테스트를 실행 한 후의 결과

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow