2013-04-23 102 views
0

我有一個類,我想測試:測試用例中的測試是否相互依賴?

class DocumentProcessor{ 

    public function write(){ 

    } 

    public function read(){ 

    } 
} 

而且我有一個簡單的測試案例:

class ClientTest extends \PHPUnit_Framework_TestCase 
{ 
    public function testWrite(){ 

    } 

    public function testRead(){ 

    } 
} 

在這種情況下,可以testRead()取決於數據testWrite()寫?或者更好的做法是讓testRead()設置自己的數據並從中讀取數據?後一種方法似乎有點重複性,但可以自行測試testRead()

回答

0

測試是獨立時最好的,或者至少在自下而上的方法中進行測試。只要您已經證明testRead獨立於testWrite(等等),就可以使用testRead測試testWrite。

1

我認爲這兩種類型都是有益的。當獨立編寫測試時,測試可以更加細化,每個測試都有趣的正常和邊緣情況等等。但是,通過集成測試證明讀者可以讀取作者寫的內容總是很好的。當輸出格式改變(並且總是這樣)以確保讀取器和寫入器都被更新時,這是特別有用的。

如果您必須支持讀取write()方法不再生成的舊/舊格式輸入,則可能還需要單獨測試read()

0

一個大的測試用例/套件需要時間來執行。出於這個原因,通常測試工程師會盡量避免冗餘。例如,他們通常會避免測試get/set方法,因爲它們在其他測試中使用。

但我只是在報告一種常見的做法 - 個人而言,我對這個主題沒有強烈的意見。