H
hakim
I've created some class modules in an Excel 97 project (a unit testing
framework) which I would like to expose as a library to other projects
(the workbooks which I want to test).
From the advice I've read so far, I've created a factory module in the
library which returns objects:
Public Function TestManager() As TestManager
Set TestManager = New TestManager
End Function
which means that the calling code can do something like the following:
Option Explicit
Public Test As Object
Sub runTests()
Set Test = UnitTestFactory.TestManager ' defined in library project
Test.addSuite New QSheet_Test ' defined in this project
Test.run
End Sub
This works... but the main annoyance is that there are a large number
of methods used in the test fixtures, and as the library's class modules
(including TestManager) aren't exposed, the VBE can't prompt with all
the utility methods (AssertTrue etc.).
Sub run()
Test.AssertTrue 2 > 1
Test.AssertEquals 100, 100
Test.AssertNotEquals 100, "a sheep"
Test.AssertIsNotNothing SomeObjectRef
Test....
End Sub
This makes the library less friendly: and I want to minimize any
possible excuses to *not* unit test!
I've seen advice (mainly re Access) to Export and re-Import the .cls
file changing the line:
Attribute VB_Exposed = False
-> Attribute VB_Exposed = True
but this doesn't work for me. (When I export the class again, the
line has been reset to VB_Exposed = False).
Any suggestions gratefully received!
osfameron
--
framework) which I would like to expose as a library to other projects
(the workbooks which I want to test).
From the advice I've read so far, I've created a factory module in the
library which returns objects:
Public Function TestManager() As TestManager
Set TestManager = New TestManager
End Function
which means that the calling code can do something like the following:
Option Explicit
Public Test As Object
Sub runTests()
Set Test = UnitTestFactory.TestManager ' defined in library project
Test.addSuite New QSheet_Test ' defined in this project
Test.run
End Sub
This works... but the main annoyance is that there are a large number
of methods used in the test fixtures, and as the library's class modules
(including TestManager) aren't exposed, the VBE can't prompt with all
the utility methods (AssertTrue etc.).
Sub run()
Test.AssertTrue 2 > 1
Test.AssertEquals 100, 100
Test.AssertNotEquals 100, "a sheep"
Test.AssertIsNotNothing SomeObjectRef
Test....
End Sub
This makes the library less friendly: and I want to minimize any
possible excuses to *not* unit test!
I've seen advice (mainly re Access) to Export and re-Import the .cls
file changing the line:
Attribute VB_Exposed = False
-> Attribute VB_Exposed = True
but this doesn't work for me. (When I export the class again, the
line has been reset to VB_Exposed = False).
Any suggestions gratefully received!
osfameron
--