W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
有幾個好的理由來在測試之間共享基境,但是大部分情況下,在測試之間共享基境的需求都源于某個未解決的設(shè)計問題。
一個有實際意義的多測試間共享基境的例子是數(shù)據(jù)庫連接:只登錄數(shù)據(jù)庫一次,然后重用此連接,而不是每個測試都建立一個新的數(shù)據(jù)庫連接。這樣能加快測試的運行。
Example?4.3, “在同一個測試套件內(nèi)的不同測試之間共享基境”用 setUpBeforeClass()
和 tearDownAfterClass()
模板方法來分別在測試用例類的第一個測試之前和最后一個測試之后連接與斷開數(shù)據(jù)庫。
Example?4.3.?在同一個測試套件內(nèi)的不同測試之間共享基境
<?php
class DatabaseTest extends PHPUnit_Framework_TestCase
{
protected static $dbh;
public static function setUpBeforeClass()
{
self::$dbh = new PDO('sqlite::memory:');
}
public static function tearDownAfterClass()
{
self::$dbh = NULL;
}
}
?>
需要反復(fù)強調(diào)的是:在測試之間共享基境會降低測試的價值。潛在的設(shè)計問題是對象之間并非松散耦合。如果解決掉潛在的設(shè)計問題并使用樁件(stub)(參見Chapter?9, 測試替身)來編寫測試,就能達成更好的結(jié)果,而不是在測試之間產(chǎn)生運行時依賴并錯過改進設(shè)計的機會。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: