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