D 2017-06-13T20:22:23.252
L Tcl\sTest\sUtilities
P 7be41607eb1b2ac022fa1ff51b6ef8176b2df2f08bc6d8f16cb6c9844b7a5a02
U gwlester
W 5407
This project is dedicated to utilities to make Agile Software Engineering,
in particular Test Driven Development easier in Tcl. It has evolved into
TIP-452. This
repository shall remain until the TIP is accepted and shipped.
Please do not use the code in this repository, but rather that in the tip's
branch.
If you intend to use this in a Tcl version prior to the TIP being accepted
and shipped, then t
he contents of the
TestSeam.tcl file should be placed in
your init.tcl file
.
The
following commands
are added to the tcl test package:
- ::tcltest::testSetup - Defines which procedures/commands are
stubbed out
and how they should behave for each invocation.
This should
only be called once per test.
- :: tcltest::addStub - Adds a procedures/commands
to the list that are stubbed out.
- :: tcltest::saveVars - Saves the values of
variables to be restored later. This should
only be called once per test.
- :: tcltest::addVars - Add a variable to the list of
variables to be restored later
- :: tcltest::callCount - Returns a dictionary sorted
list of the stubbed out
procedures and how many times they were called.
- :: tcltest::testCleanup - Restores saved variables
and stubbed out procedures.
- :: tcltest::sortedArrayData - Return the values of an
array as a list of key value
pairs sorted by the keys.
- :: tcltest::callProc - Call the real implementation
of a stubbed out procedure.
- :: tcltest::seam - Test seam definition and
injection (aka enabling)
-
::tcltest::testObject - This command
creates an instance of an object, runs the specified test against it and then
destroys the object. The syntax is:
::tcltest::testObject
name description class ?-options...?
It supports all options of::tcltest::test
plus those listed below:
- -arguments creationArgumentList --
arguments to pass in when creating the object
- -constructor script -- override the
class constructor with the
- -destructor script --
override the class
destructor with the
- -objectVar variableName -- name to hold the
created object, defaults to "cut"
- -stubs stubDefList -- a list of "instance"
methods (those defined in the class) to be "replaced" by the
contained definition. Each element of stubDefList is a
duple with the following format:
- methodName methodBody -- The methodBody will
be executed when ever methodName is called instead of the
"real" definition.
Supporting Class
::tcltest::object - Class to provide useful object testing utilities
Synopsis
Exported Static Methods
Exported Instance Methods
Acknowledgements
Thanks to Sean Woods for providing major help with the object based extensions.
Thanks to Noumena Corporation for encouragement and for supporting the Tcl community.
Z ab66c4270e6ee629a5ffd8a44794bc7e