Visual Basic .NET Language
VB.NET의 단위 테스트
수색…
비고
이것은 단위 테스트 절차에 대한 가장 단순하면서도 설명적인 예입니다. 다른 데이터 유형에 대해 확인하는 방법을 추가하십시오.
세금 계산을위한 단위 테스트
이 예제는 두 개의 기둥으로 나뉩니다.
- 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
은 예상 결과와 실제 결과 사이의 허용 오차 또는 변동을 허용하는 데 사용됩니다.
직원 클래스 할당 및 파생 속성 테스트
이 예제는 단위 테스트에서 더 많은 테스트를 사용할 수 있습니다.
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