測試用例詳解

發表于:2014-08-01來源:uml.org.cn作者:nonultimate點擊數: 標簽:測試用例
在上篇文章中介紹了如何使用PHPUnit進行單元測試,現在我就來談談如何編寫測試用例以及怎樣保證測試的全面性。

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

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

  標記未完成

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

  PHP代碼

  class UnitTest extends PHPUnit_Framework_TestCase

  {

  /**

  * 測試Hello()方法

  */

  public function testHello()

  {

  $this->markTestIncomplete('這是一個未完成的測試');

  }

  }

  ?>

  標記跳過

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

  PHP代碼

  class UnitTest extends PHPUnit_Framework_TestCase

  {

  protected function setUp()

  {

  // 該測試用例需要xxx擴展,如果不滿足就跳過

  if (!extension_loaded('xxx')) {

  $this->markTestSkipped('這是一個跳過的測試');

  }

  }

  }

  ?>

  斷言

  布爾類型

  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 斷言文件內容等于

原文轉自:http://www.uml.org.cn/Test/200910169.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97