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

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

  • <strong id="5koa6"></strong>
  • 軟件測試中測試用例詳解

    發表于:2010-04-26來源:作者:點擊數: 標簽:軟件測試詳解
    軟件測試中測試用例詳解 在上篇文章中介紹了如何使用 PHP Unit進行 單元測試 ,現在我就來談談如何 編寫測試用例 以及怎樣保證測試的全面性。 通常的測試用例繼承自 PHPUnit _Framework_ TestCase 類,其中的每個測試都以test開頭,而且聲明為公共類型public

    軟件測試中測試用例詳解

    在上篇文章中介紹了如何使用PHPUnit進行單元測試,現在我就來談談如何編寫測試用例以及怎樣保證測試的全面性。

    通常的測試用例繼承自PHPUnit_Framework_TestCase類,其中的每個測試都以test開頭,而且聲明為公共類型public。每個測試用例都有一個構建方法setUp()和拆除方法tearDown(),分別在每個測試執行之前和之后執行,這兩個方法都聲明為被保護類型protected。測試語句的類型包括斷言、標記跳過、標記未完成。自動生成的測試類使用標記未完成來表示該測試未完成,在測試條件不滿足的情況下要使用標記跳過,如測試Oracle數據庫驅動時沒有Oracle數據庫環境、Linux下無法測試SQL Server數據庫驅動等。測試結果包括成功、失敗和錯誤。出現錯誤的結果說明你的代碼中有語法或運行時錯誤,這些錯誤要首先被解決。

    標記未完成

    在開始寫測試用例時,我們使用標記跳過來表示測試是未完成的,這樣做和什么都不寫的區別是后者會認為測試是成功的,而你可能會在之后忘了寫測試。

    PHP代碼
    1. class UnitTest extends PHPUnit_Framework_TestCase  
    2. {  
    3.     /** 
    4.      * 測試Hello()方法 
    5.      */  
    6.     public function testHello()  
    7.     {  
    8.         $this->markTestIncomplete('這是一個未完成的測試');  
    9.     }  
    10. }  
    11. ?>  

    標記跳過

    使用標記跳過來跳過不滿足測試條件的情況,避免出現錯誤而影響測試結果。

    PHP代碼
    1. class UnitTest extends PHPUnit_Framework_TestCase  
    2. {  
    3.     protected function setUp()  
    4.     {  
    5.         // 該測試用例需要xxx擴展,如果不滿足就跳過  
    6.         if (!extension_loaded('xxx')) {  
    7.             $this->markTestSkipped('這是一個跳過的測試');  
    8.         }  
    9.     }  
    10. }  
    11. ?>  

    斷言

    布爾類型
    assertTrue   斷言為真
    assertFalse  斷言為假

    NULL類型
    assertNull     斷言為NULL
    assertNotNull  斷言非NULL

    數字類型
    assertEquals             斷言等于
    assertNotEquals          斷言不等于
    assertGreaterThan        斷言大于
    assertGreaterThanOrEqual 斷言大于等于
    assertLessThan           斷言小于
    assertLessThanOrEqual    斷言小于等于

    字符類型
    assertEquals          斷言等于
    assertNotEquals       斷言不等于
    assertContains        斷言包含
    assertNotContains     斷言不包含
    assertContainsOnly    斷言只包含
    assertNotContainsOnly 斷言不只包含

    數組類型
    assertEquals          斷言等于
    assertNotEquals       斷言不等于
    assertArrayHasKey     斷言有鍵
    assertArrayNotHasKey  斷言沒有鍵
    assertContains        斷言包含
    assertNotContains     斷言不包含
    assertContainsOnly    斷言只包含
    assertNotContainsOnly 斷言不只包含

    對象類型
    assertAttributeContains           斷言屬性包含
    assertAttributeContainsOnly       斷言屬性只包含
    assertAttributeEquals             斷言屬性等于
    assertAttributeGreaterThan        斷言屬性大于
    assertAttributeGreaterThanOrEqual 斷言屬性大于等于
    assertAttributeLessThan           斷言屬性小于
    assertAttributeLessThanOrEqual    斷言屬性小于等于
    assertAttributeNotContains        斷言不包含
    assertAttributeNotContainsOnly    斷言屬性不只包含
    assertAttributeNotEquals          斷言屬性不等于
    assertAttributeNotSame            斷言屬性不相同
    assertAttributeSame               斷言屬性相同
    assertSame                        斷言類型和值都相同
    assertNotSame                     斷言類型或值不相同
    assertObjectHasAttribute          斷言對象有某屬性
    assertObjectNotHasAttribute       斷言對象沒有某屬性

    class類型
    class類型包含對象類型的所有斷言,還有
    assertClassHasAttribute          斷言類有某屬性
    assertClassHasStaticAttribute    斷言類有某靜態屬性
    assertClassNotHasAttribute       斷言類沒有某屬性
    assertClassNotHasStaticAttribute 斷言類沒有某靜態屬性

    文件相關
    assertFileEquals     斷言文件內容等于
    assertFileExists     斷言文件存在
    assertFileNotEquals  斷言文件內容不等于
    assertFileNotExists  斷言文件不存在

    XML相關
    assertXmlFileEqualsXmlFile        斷言XML文件內容相等
    assertXmlFileNotEqualsXmlFile     斷言XML文件內容不相等
    assertXmlStringEqualsXmlFile      斷言XML字符串等于XML文件內容
    assertXmlStringEqualsXmlString    斷言XML字符串相等
    assertXmlStringNotEqualsXmlFile   斷言XML字符串不等于XML文件內容
    assertXmlStringNotEqualsXmlString 斷言XML字符串不相等

    有返回值的方法或函數根據其類型選擇相應的斷言,下面是一個簡單例子。

    PHP代碼
    1. class UnitTest extends PHPUnit_Framework_TestCase  
    2. {  
    3.     /** 
    4.      * 測試返回值為布爾類型 
    5.      */  
    6.     public function testReturnBool()  
    7.     {  
    8.         // 實際情況把TRUE和FALSE換為被測試方法或函數  
    9.         $this->assertTrue(TRUE);  
    10.         $this->assertFalse(FALSE);  
    11.     }  
    12.     /** 
    13.      * 測試返回值為字符串類型 
    14.      */  
    15.     public function testReturnString()  
    16.     {  
    17.         $expected = 'string';  
    18.         // 實際情況把下面的'string'換為被測試方法或函數  
    19.         $result = 'string';  
    20.         $this->assertEquals($expected$result);  
    21.     }  
    22.     /** 
    23.      * 測試返回值是數字類型 
    24.      */  
    25.     public function testReturnInt()  
    26.     {  
    27.         $expected = 10;  
    28.         // 實際情況把20換為被測試方法或函數  
    29.         $result = 20;  
    30.         $this->assertGreaterThan($expected$result);  
    31.     }  
    32.     /** 
    33.      * 測試返回值是數組類型 
    34.      */  
    35.     public function testReturnArray()  
    36.     {  
    37.         // 實際情況把$result賦值為被測試方法或函數  
    38.         $result = array('test' => 'hello');  
    39.         // 實際情況把'test'換為要測試的鍵名稱  
    40.         $this->assertArrayHasKey('test'$result);  
    41.     }  
    42.     /** 
    43.      * 測試返回值是對象類型 
    44.      */  
    45.     public function testReturnObject()  
    46.     {  
    47.         // 實際情況把$this換為期望的對象  
    48.         $expected = $this;  
    49.         // 實際情況把$this換為被測試方法或函數  
    50.         $result = $this;  
    51.         $this->assertSame($expected$result);  
    52.     }  
    53. }  
    54. ?>  

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品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>