diff options
Diffstat (limited to 'demos/time-tracker/protected/pages/Docs/WritingUnitTest.page')
-rw-r--r-- | demos/time-tracker/protected/pages/Docs/WritingUnitTest.page | 43 |
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"> <?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"> <?php class Project @@ -44,15 +52,11 @@ class Project } ?> </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"> <?php @@ -63,11 +67,20 @@ class ProjectTestCase extends UnitTestCase } ?> </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 |