|
- <%
- Class ASPUnitTester
- Private _
- m_Responder, _
- m_Scenario
-
- Private _
- m_CurrentModule, _
- m_CurrentTest
-
- Private Sub Class_Initialize()
- Set m_Responder = New ASPUnitJSONResponder
- Set m_Scenario = New ASPUnitScenario
- End Sub
-
- Private Sub Class_Terminate()
- Set m_Scenario = Nothing
- Set m_Responder = Nothing
- End Sub
-
- Public Property Set Responder(ByRef objValue)
- Set m_Responder = objValue
- End Property
-
- Public Property Get Modules()
- Set Modules = m_Scenario.Modules
- End Property
-
- ' Factory methods for private classes
-
- Public Function CreateModule(strName, arrTests, objLifecycle)
- Dim objReturn, _
- i
-
- Set objReturn = New ASPUnitModule
- objReturn.Name = strName
- For i = 0 To UBound(arrTests)
- objReturn.Tests.Add(arrTests(i))
- Next
- Set objReturn.Lifecycle = objLifecycle
-
- Set CreateModule = objReturn
- End Function
-
- Public Function CreateTest(strName)
- Dim objReturn
-
- Set objReturn = New ASPUnitTest
- objReturn.Name = strName
-
- Set CreateTest = objReturn
- End Function
-
- Public Function CreateLifecycle(strSetup, strTeardown)
- Dim objReturn
-
- Set objReturn = New ASPUnitTestLifecycle
- objReturn.Setup = strSetup
- objReturn.Teardown = strTeardown
-
- Set CreateLifecycle = objReturn
- End Function
-
- ' Public methods to add modules
-
- Public Sub AddModule(objModule)
- Call m_Scenario.Modules.Add(objModule)
- End Sub
-
- Public Sub AddModules(arrModules)
- Dim i
-
- For i = 0 To UBound(arrModules)
- Call AddModule(arrModules(i))
- Next
- End Sub
-
- ' Assertion Methods
-
- Private Function Assert(blnResult, strDescription)
- If IsObject(m_CurrentTest) Then
- m_CurrentTest.Passed = blnResult
- m_CurrentTest.Description = strDescription
- End If
-
- Assert = blnResult
- End Function
-
- Public Function Ok(blnResult, strDescription)
- Ok = Assert(blnResult, strDescription)
- End Function
-
- Public Function Equal(varActual, varExpected, strDescription)
- Equal = Assert((varActual = varExpected), strDescription)
- End Function
-
- Public Function NotEqual(varActual, varExpected, strDescription)
- NotEqual = Assert(Not (varActual = varExpected), strDescription)
- End Function
-
- Public Function Same(varActual, varExpected, strDescription)
- Same = Assert((varActual Is varExpected), strDescription)
- End Function
-
- Public Function NotSame(varActual, varExpected, strDescription)
- NotSame = Assert(Not (varActual Is varExpected), strDescription)
- End Function
-
- ' Methods to run module tests
-
- Public Sub Run()
- Dim objModule, _
- i
-
- For i = 0 To (m_Scenario.Modules.Count - 1)
- Set objModule = m_Scenario.Modules.Item(i)
- Call RunModule(objModule)
-
- m_Scenario.TestCount = m_Scenario.TestCount + objModule.TestCount
- m_Scenario.PassCount = m_Scenario.PassCount + objModule.PassCount
- m_Scenario.FailCount = m_Scenario.FailCount + objModule.FailCount
-
- Set objModule = Nothing
- Next
-
- m_Responder.Respond(m_Scenario)
- End Sub
-
- Private Sub RunModule(ByRef objModule)
- Dim intTimeStart, _
- intTimeEnd, _
- objTest, _
- i
-
- Set m_CurrentModule = objModule
-
- intTimeStart = Timer
- For i = 0 To (objModule.Tests.Count - 1)
- Set objTest = objModule.Tests.Item(i)
-
- Call RunTestModuleSetup(objModule)
- Call RunModuleTest(objTest)
- Call RunTestModuleTeardown(objModule)
-
- If objTest.Passed Then
- objModule.PassCount = objModule.PassCount + 1
- End If
-
- Set objTest = Nothing
- Next
- intTimeEnd = Timer
-
- objModule.Duration = Round((intTimeEnd - intTimestart), 3)
-
- Set m_CurrentModule = Nothing
- End Sub
-
- Private Sub RunModuleTest(ByRef objTest)
- Set m_CurrentTest = objTest
-
- On Error Resume Next
- Call GetRef(objTest.Name)()
-
- If Err.Number <> 0 Then
- Call Assert(False, Err.Description)
- End If
-
- Err.Clear()
- On Error Goto 0
-
- Set m_CurrentTest = Nothing
- End Sub
-
- Private Sub RunTestModuleSetup(ByRef objModule)
- If Not objModule.Lifecycle Is Nothing Then
- If Not objModule.Lifecycle.Setup = Empty Then
- Call GetRef(objModule.Lifecycle.Setup)()
- End If
- End If
- End Sub
-
- Private Sub RunTestModuleTeardown(ByRef objModule)
- If Not objModule.Lifecycle Is Nothing Then
- If Not objModule.Lifecycle.Teardown = Empty Then
- Call GetRef(objModule.Lifecycle.Teardown)()
- End If
- End If
- End Sub
- End Class
-
- ' Private Classses
-
- Class ASPUnitScenario
- Public _
- Modules, _
- TestCount, _
- PassCount, _
- FailCount
-
- Private Sub Class_Initialize()
- Set Modules = Server.CreateObject("System.Collections.ArrayList")
- PassCount = 0
- TestCount = 0
- FailCount = 0
- End Sub
-
- Private Sub Class_Terminate()
- Set Modules = Nothing
- End Sub
-
- Public Property Get Passed
- Passed = (PassCount = TestCount)
- End Property
- End Class
-
- Class ASPUnitModule
- Public _
- Name, _
- Tests, _
- Lifecycle, _
- Duration, _
- PassCount
-
- Private Sub Class_Initialize()
- Set Tests = Server.CreateObject("System.Collections.ArrayList")
- PassCount = 0
- End Sub
-
- Private Sub Class_Terminate()
- Set Tests = Nothing
- End Sub
-
- Public Property Get TestCount
- TestCount = Tests.Count()
- End Property
-
- Public Property Get FailCount
- FailCount = (TestCount - PassCount)
- End Property
-
- Public Property Get Passed
- Passed = (PassCount = TestCount)
- End Property
- End Class
-
- Class ASPUnitTest
- Public _
- Name, _
- Passed, _
- Description
- End Class
-
- Class ASPUnitTestLifecycle
- Public _
- Setup, _
- Teardown
- End Class
- %>
|