<p>This project is dedicated to utilities to make Agile Software Engineering,
in particular Test Driven Development easier in Tcl. &nbsp;It has evolved into
<a &nbsp;This
repository shall remain until the TIP is accepted and shipped.</p>

<p>Please do not use the code in this repository, but rather that in the tip's
branch.</p>

<p>If you intend to use this in a Tcl version prior to the TIP being accepted
and shipped, then t

<span style="font-size: 10pt;">he contents of the&nbsp;</span><font face="Monaco" style="font-size: 10pt;">

<span style="font-size: 12px;"><b>TestSeam.tcl</b> file should be placed in
your <b>init.tcl</b>

<span style="font-family: Monaco; font-size:

<p>The

<span style="font-family: Monaco; font-size: 12px;">&nbsp;following commands
are added to the tcl test

<div>
<ul>
<li><b>::tcltest::testSetup</b>&nbsp;- Defines which procedures/commands are
stubbed out&nbsp;

<span style="font-size: 10pt;">and how they should behave for each invocation.
This should</span>

<span style="font-size: 10pt;">&nbsp;only be called once per
Adds a procedures/commands
&nbsp;to the list that are stubbed out.</li>
Saves the values of
variables to be restored later. This should

<span style="font-size: 10pt;">&nbsp;only be called once per
Add a variable to the list of
variables to be restored later</li>
Returns a dictionary sorted
list of the stubbed out&nbsp;

<span style="font-size: 10pt;">procedures and how many times they were
Restores saved variables
and stubbed out procedures.</li>
- Return the values of an
array as a list of key value

<span style="font-size: 10pt;">&nbsp;pairs sorted by the
Call the real implementation
of a stubbed out procedure.</li>
Test seam definition and
injection (aka enabling)</li>
<li>

<span style="font-size: 10pt;"><b>::tcltest::testObject </b>- This command
creates an instance of an object, runs the specified test against it and then
destroys the object. &nbsp;The syntax


<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<div>

<span style="font-size: 10pt;">&nbsp;</span><b style="font-size: 10pt;">::tcltest::testObject</b>

<span style="font-size: 10pt;">&nbsp;<i>name description class

<div><b style="font-size: 10pt;"><br>


<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<div>

<span style="font-size: 10pt;">It supports all options of</span><b style="font-size: 10pt;">::tcltest::test
</b>

<span style="font-size: 10pt;">plus those listed

<div>
<ul>
<ul>
<li><font
</font>arguments to pass in when creating the object<font
<li><font size="2">&nbsp;the
class&nbsp;constructor with
<li><font

<span style="font-size: 10pt;">override</span><font size="2">&nbsp;the class
destructor with the&nbsp;</font><br>
</li>
<li><font size="2"><b>-objectVar -- name to hold the
created object, defaults to
<li><font size="2"><b>-stubs</b> <i>stubDefList</i> -- a list of "instance"
methods (those&nbsp;defined in the class) to be "replaced" by&nbsp;the
contained definition. &nbsp;Each element of&nbsp;<i>stubDefList</i>&nbsp;is a
duple with the following
<ul>
<li><font size="2"><i>methodName methodBody</i> --
be executed when ever&nbsp;<i>methodName</i>&nbsp;is called instead of the
"real" definition.</li>
</ul>
</ul>
</ul>

<h2>Supporting

<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<h3>::tcltest::object - Class to provide useful object testing

<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<h4>Synopsis</h4>

<div>

<h3><font

<blockquote style="margin: 0px 0px 0px 40px; padding: 0px; border:

<h3>

<span style="font-size: 10pt;">Exported Static

<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">

<h4>Exported Instance

<div>

<h2>Acknowledgements</h2>
<pre>Thanks to Sean Woods for providing major help with the object based extensions.</pre>
<pre>Thanks to <a Corporation</a> for encouragement and for supporting the Tcl community.</pre>
<ul>