C++樁模組和驅動模組詳解

2020-07-16 10:04:40
樁模組驅動模組對於測試和偵錯使用函數的程式是非常有用的工具。它們允許測試程式中的單個函數,隔離呼叫該函數的程式部分。

樁模組(Stub)

樁模組(Stub)是一個被呼叫的虛擬函數,而不是它所代表的實際函數。它通常顯示一個測試訊息,確認它已被呼叫,然後就沒有其他了。

例如,如果在某個程式中使用了一個樁模組用於代替 showFees 函數,那麼它可能如下所示:
// showFees函數的樁模組
void showFees(string memberType, double rate, int months)
{
    cout << "The function showFees was called with arguments:n"<< "Member type: "<< memberType << endl << "rate: " << rate << endl << "months: " << months << endl;
}
樁模組一旦建立,程式就可以使用此樁模組而不是實際的 showFees 函數來模擬執行程式。因此,通過使用樁模組替換實際的函數,可以將測試工作集中在呼叫該函數的程式部分。

最主要的是,樁模組允許程式設計師在需要時確定程式是否正在呼叫一個函數,並確定有效值是否被傳遞給該函數。如果樁模組代表了返回值的函數,那麼它應該返回一個測試值,這有助於確認返回值將被正確處理。

驅動模組(Driver)

當呼叫函數的程式部分被偵錯到滿意時,程式設計師就可以繼續測試和偵錯實際的函數本身,而這正是驅動模組變得有用的地方。

驅動模組(Driver)是通過簡化呼叫來測試函數的程式。如果函數接收任何實參,驅動模組會傳遞測試資料。如果函數返回一個值,驅動模組會在螢幕上顯示返回值。這樣就可以在隔離程式的其餘部分的情況下,讓程式設計師看到被測試函數的執行方式。

因此,驅動模組的作用是用來徹底測試函數,它可以使用不同的測試值作為實參重複呼叫函數。當函數能夠按照目標要求執行時,即可將其放入實際的程式中。