• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    利用單元測試對PHP代碼進行檢查[2]

    發布: 2010-3-31 10:50 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 13次 | 進入軟件測試論壇討論

    領測軟件測試網

      利用單元測試對PHP代碼進行檢查[2]   單元測試工具

      清單 5. Schema.sql

      DROP TABLE IF EXISTS authors;CREATE TABLE authors ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name TEXT NOT NULL, PRIMARY KEY ( id ));

      清單 5 是一個 authors 表,每條記錄都有一個相關的 ID。

      接下來,就可以編寫測試用例了。

      清單 6. TestAuthors.php

      PHPUnit2/Framework/TestCase.php;class TestAuthors extends PHPUnit2_Framework_TestCase{ function test_delete_all() { $this->assertTrue( Authors::delete_all() ); } function test_insert() { $this->assertTrue( Authors::delete_all() ); $this->assertTrue( Authors::insert( Jack ) ); } function test_insert_and_get() { $this->assertTrue( Authors::delete_all() ); $this->assertTrue( Authors::insert( Jack ) ); $this->assertTrue( Authors::insert( Joe ) ); $found = Authors::get_all(); $this->assertTrue( $found != null ); $this->assertTrue( count( $found ) == 2 ); }}?>

     。牐犨@組測試覆蓋了從表中刪除作者、向表中插入作者以及在驗證作者是否存在的同時插入作者等功能。這是一個累加的測試,我發現對于尋找錯誤來說這非常有用。觀察一下哪些測試可以正常工作,而哪些測試不能正常工作,就可以快速地找出哪些地方出錯了,然后就可以進一步理解它們之間的區別。

      最初產生失敗的 dblib.php PHP 數據庫訪問代碼版本如下所示。

      清單 7. dblib.php

      mysql://root:password@localhost/unitdb; $db =& DB::Connect( $dsn, array() ); if (PEAR::isError($db)) { die($db->getMessage()); } return $db; } public static function delete_all() { return false; } public static function insert( $name ) { return false; } public static function get_all() { return null; }}?>

      對清單 8 中的代碼執行單元測試會顯示這 3 個測試全部失敗了:

      清單 8. dblib.php

      % phpunit TestAuthors.phpPHPUnit 2.2.1 by Sebastian Bergmann.FFFTime: 0.007500171661377There were 3 failures:1) test_delete_all(TestAuthors)2) test_insert(TestAuthors)3) test_insert_and_get(TestAuthors)FAILURES!!!Tests run: 3, Failures: 3, Errors: 0, Incomplete Tests: 0.%

      現在我們可以開始添加正確訪問數據庫的代碼 —— 一個方法一個方法地添加 —— 直到所有這 3 個測試都可以通過。最終版本的 dblib.php 代碼如下所示。軟件測試 

     清單 9. 完整的 dblib.php

      getMessage()); } return $db; } public static function delete_all() { $db = Authors::get_db(); $sth = $db->prepare( DELETE FROM authors ); $db->execute( $sth ); return true; } public static function insert( $name ) { $db = Authors::get_db(); $sth = $db->prepare( INSERT INTO authors VALUES (null,?) ); $db->execute( $sth, array( $name ) ); return true; } public static function get_all() { $db = Authors::get_db(); $res = $db->query( "SELECT * FROM authors" ); $rows = array(); while( $res->fetchInto( $row ) ) { $rows []= $row; } return $rows; }}?>

      HTML 測試

      對整個 PHP 應用程序進行測試的下一個步驟是對前端的超文本標記語言(HTML)界面進行測試。要進行這種測試,我們需要一個如下所示的 Web 頁面。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: php PHP 代碼 單元 檢查


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>