summaryrefslogtreecommitdiff
path: root/demos/time-tracker/protected/pages/Docs/WritingUnitTest.page
diff options
context:
space:
mode:
authorwei <>2006-07-16 06:19:36 +0000
committerwei <>2006-07-16 06:19:36 +0000
commitc7d41e5bea4a5f96979a08da9cc9f79355edfe70 (patch)
tree8f21cba052c1eae7c7204ac272dd8c5e9d6fe110 /demos/time-tracker/protected/pages/Docs/WritingUnitTest.page
parentaf68030fcf0c266300feb2c100149ecadef7d364 (diff)
Update Time Tracker demo.
Diffstat (limited to 'demos/time-tracker/protected/pages/Docs/WritingUnitTest.page')
-rw-r--r--demos/time-tracker/protected/pages/Docs/WritingUnitTest.page43
1 files changed, 28 insertions, 15 deletions
diff --git a/demos/time-tracker/protected/pages/Docs/WritingUnitTest.page b/demos/time-tracker/protected/pages/Docs/WritingUnitTest.page
index 32c7bc79..77bdcbe6 100644
--- a/demos/time-tracker/protected/pages/Docs/WritingUnitTest.page
+++ b/demos/time-tracker/protected/pages/Docs/WritingUnitTest.page
@@ -1,13 +1,19 @@
<com:TContent ID="body">
<h1>Writing a Unit Test</h1>
+<p>Before we begin to write our business logic and code, we shall
+proceed with the path of <a href="http://tdd.com">test driven development</a> (TDD), or at least take
+some part of that process.</p>
+
<p>Unit testing is a useful tool when we want to start to test
our individual business logic classes.
- The <tt>tests/unit</tt> directory will be used to hold the unit test cases and <tt>tests/functional</tt> directory
-to hold the function test cases.
+ The <tt>tests/unit</tt> directory will be used to hold the unit test
+ cases and <tt>tests/functional</tt> directory
+ to hold the function test cases.
</p>
<h2>Write a unit test case</h2>
-<p>We will start be writing a very simple unit test case.</p>
+<p>We will start be writing a very simple unit test case. Notice
+that we are writing the test case <b>first</b>.</p>
<com:TTextHighlighter Language="php" CssClass="source">
&lt;?php
class ProjectTestCase extends UnitTestCase
@@ -29,14 +35,16 @@ directory.</p>
<img src="<%~ unit_test1.png %>" class="figure"/>
<div class="caption"><b>Figure 1:</b> Unit test runner</div>
</p>
-<p>Clicking on the <tt>ProjectTestCase.php</tt> like, you should see
+<p>Clicking on the <tt>ProjectTestCase.php</tt> link, you should see
<img src="<%~ unit_test2.png %>" class="figure"/>
<div class="caption"><b>Figure 2:</b> Unit test failure</div>
</p>
<h2>Smallest step to make the test pass.</h2>
-<p>Obviously, we need create the class <tt>Project</tt>, so lets define the class.</p>
+<p>Since we only wrote the test case and nothing else we expected
+that the test case will fail at some point. Obviously, we need create
+a class <tt>Project</tt>, so lets define the <tt>Project</tt> class.</p>
<com:TTextHighlighter Language="php" CssClass="source">
&lt;?php
class Project
@@ -44,15 +52,11 @@ class Project
}
?&gt;
</com:TTextHighlighter>
-<p>Save the above code as <tt>time-tracker/protected/pages/APP_CODE/Project.php</tt>.
- Where the <tt>APP_CODE</tt> directory will contain most of your business logic code for the Time Tracker application.</p>
-<p>We also need to add the following line in our test case so as to include the <tt>Project</tt> class file when running the tests.</p>
-
-<p class="note">
-The statement <tt>Prado::using('Application.APP_CODE.Project')</tt> basically
-loads the <tt>Project.php</tt> class file. It assumes that a class name <tt>Project</tt> has filename <tt>Project.php</tt>.
-For futher details regarding <tt>Prado::using</tt> can be found in <a href="http://www.pradosoft.com/demos/quickstart/index.php?page=Fundamentals.Components#704">Prado Namespaces</a> documentation.
-</p>
+<p>We save the above code as <tt>time-tracker/protected/pages/APP_CODE/Project.php</tt>.
+ Where the <tt>APP_CODE</tt> directory will contain most of the business logic code
+ for the Time Tracker application.</p>
+<p>Now, we also need to add the following line in our test case so as to
+include the <tt>Project</tt> class file when running the tests.</p>
<com:TTextHighlighter Language="php" CssClass="source">
&lt;?php
@@ -63,11 +67,20 @@ class ProjectTestCase extends UnitTestCase
}
?&gt;
</com:TTextHighlighter>
+
+<div class="info"><b>Info:</b>
+The statement <tt>Prado::using('Application.APP_CODE.Project')</tt> basically
+loads the <tt>Project.php</tt> class file. It assumes that a class name <tt>Project</tt> has filename <tt>Project.php</tt>.
+For futher details regarding <tt>Prado::using</tt> can be found in <a href="http://www.pradosoft.com/demos/quickstart/index.php?page=Fundamentals.Components#704">Prado Namespaces</a> documentation.
+</div>
+
<p>Run the unit test runner again, we see that the test has passed.
<img src="<%~ unit_test3.png %>" class="figure"/>
<div class="caption"><b>Figure 3:</b> Unit test success</div>
</p>
<p>
-Later on, we shall write more test cases. See the SimpleTest documentation for detailed tutorial on writing test cases.</p>
+Later on, we shall write more test cases. See the
+<a href="http://www.lastcraft.com/simple_test.php">SimpleTest documentation</a>
+for detailed tutorial on writing test cases.</p>
</com:TContent> \ No newline at end of file