Writing Tests - Quick Reference
A test project exposes one or more test suites that can be called by the TestRunner or some other program. Test projects must be of type ActiveX DLL to allow the automatic extraction of test methods from the fixture classes. You can quickly create a new Test Project with the project template called "vbUnit TestDll". Read the vbUnit tutorial for more information about how to set up a test project.
A fixture is a class that contains a setup of objects against which to run one or more tests. To create an empty fixture, use the class template for a "vbUnit TestFixture" (as described in the tutorial), or create a new class and add the following code:
'TestError Public Sub TestError() Dim a As Long m_assert.Trace "this will throw an error" a = 5 / 0 End SubThis will produce:
vbunitTestFixture.TestError : Division by zero : this will throw an error
You can send messages to the TestRunner window with m_assert.PrintMsg
"some message". These messages are purely for the benefit of
the human who looks at the TestResult and have no influence on the success or
failure of a test.
Messages must be enabled with m_assert.EnablePrintMsg, which can be placed anywhere inside a TestMethod, or in the Setup or Create methods of a fixture. This allows to quickly turn messages on or off for any given fixture, since messages should only be used during development. When a fixture is stable, you should disable the messages by commenting out the EnablePrintMsg line to prevent cluttering your test result with too much information.
If you want to be able to double-click on a message to highlight the corresponding code line and your message uses a string expression instead of a literal string, you can supply an optional second parameter as a unique marker. This is purely for the code highlighting feature and won't show in the TestResult:
m_assert.PrintMsg "The counter is: " & counter, "countMsg1"
A suite contains one or more fixtures and exposes them to the TestRunner or any other program. Test suites can also contain other test suites. To create a new suite, use the class template for a "vbUnit TestSuite", or create a new empty class and add the following code. Then change the fixture names to match your fixture classes.
'NewTestSuite.cls Option Explicit Implements ISuite Private Function ISuite_Suite() As ITest Dim suite As New TestSuite suite.SuiteName = "New Test Suite" 'add Test Fixtures here suite.AddFixture New Fixture1 suite.AddFixture New Fixture2 ' and so on ... 'this is how to add other Test Suites suite.AddSuite New OtherLocalSuite suite.AddSuite CreateObject("OtherProject.RemoteTestSuite") Set ISuite_Suite = oSuite End Function