首頁  >  文章  >  後端開發  >  Yii框架官方指南系列增補版40-測驗:功能測驗(Functional Testing )

Yii框架官方指南系列增補版40-測驗:功能測驗(Functional Testing )

黄舟
黄舟原創
2017-02-16 09:13:331070瀏覽



在閱讀本章節之前, 強烈推薦你先閱讀Selenium文檔和 PHPUnit文檔. 下面我們簡要概述在Yii框架中編寫功能測試的基本原則:

  • 和單元測試以繼承子自CWebTestCase的XyzTest類別的形式編寫, 其中 Xyz 代表被測試的類別. 由於 PHPUnit_Extensions_SeleniumTestCase 是CWebTestCase的祖先類別, 我們可以從這個類別中繼承.以XyzTest.php的形式保存在PHP檔案中.方便起見, 功能測試檔案通常保存在 

    protected/tests/functional資料夾下
  • .
  • 測試類別主要包含一系列命名為testAbc 其中的測試方法,

    Abc
  •  通常是要測試的特性的名字,例如, 想要測試使用者登入功能, 我們可能會有一個命名為 
  • testLogin的測試方法

    .測試方法包含一系列的測試方法中包含一系列的用於測試RC Selenium RC 和web應用程式之間進行互動的命令語句. 它還包含用於確認我們所期望的web應用回复的斷言語句.

  • 在描述如何寫一個功能測試之前, 我們先看看通過yiic webapp命令自動產生的 

    WebTestCase.php
  •  檔案。這個檔案定義了作為所有功能測試類別的基類 
WebTestCase:

<pre class="brush:php;toolbar:false">define('TEST_BASE_URL','http://localhost/yii/demos/blog/index-test.php/'); class WebTestCase extends CWebTestCase {     /**      * Sets up before each test method runs.      * This mainly sets the base URL for the test application.      */     protected function setUp()     {         parent::setUp();         $this-&gt;setBrowserUrl(TEST_BASE_URL);     }     ...... }</pre>

WebTestCase

主要設定了測試頁面的根URL,後面在測試方法中我們可以使用相對要測試方法頁面。

我們還要注意,在測試根URL中, 使用了 index-test.php 作為入口腳本而不是 

index.php

. 兩者之間的唯一不同就是前者使用test.php作為應用配置文件,而後者使用的是 main.php.現在我們開始講述測試在blog演示中如何測試顯示一篇文章這一功能特性. 首先編寫如寫的測試類, 注意測試類繼承自我們上面所述的基類WebTestCase:

class PostTest extends WebTestCase
{
    public $fixtures=array(
        'posts'=>'Post',
    );

    public function testShow()
    {
        $this->open('post/1');
        // verify the sample post title exists
        $this->assertTextPresent($this->posts['sample1']['title']);
        // verify comment form exists
        $this->assertTextPresent('Leave a Comment');
    }

    ......
}

和寫單元測試一樣,我們首先聲明了本測試所用到的特定狀態( fixtures).這裡我們指定使用 

Post

在 fixture.howS. , 我們先使用Selenium RC 打開URL 

post/1

.注意這是一個相對URL, 完整的URL 是拼接了基類中的根URL (i.e. http://www.php.cn/). 然後我們驗證是否可以在目前頁面中找到sample1 post 的title. 我們也可以驗證這個頁面是否包含文字 Leave a Comment.Tip: 在執行功能測試之前啟動. 這可以透過在你的Selenium server安裝目錄下執行指令 

java -jar selenium-server.jar

 來實現。  以上就是Yii框架官方指南系列增補版40——測試:功能測試(Functional Testing )的內容,更多相關內容請關注PHPcn網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn