簡體   English   中英

如何測試僅返回系統值的API?

[英]How to test API that just returns system values?

比方說我們有一個例行程序

int unw_getcontext(unw_context_t *ucp)

The unw_getcontext() routine initializes the context structure pointed to by ucp with the machine-state of the call-site. The exact set of registers stored by unw_getcontext() is platform-specific

這樣的例行程序必須進行什么單元測試? 當然,我可以使用一些系統調用來獲取CPU寄存器和類似的東西,然后將其與例程返回的內容進行比較。 但這對於單元測試來說似乎是很多工作。 測試理論對測試此類API有何看法?

我會說這更多地取決於上下文。

您應該測試您依賴或在公共API中承諾的所有內容(還隱藏所有未測試的內容)。

如果此方法是您的庫的一部分,則應確保它能夠完成文檔中所述的所有操作。 將寄存器設置為特定值,並驗證函數是否正確返回它們。

如果這是內部的,而您僅依賴其中的一部分,則可以只測試該部分並修改文檔以表明未測試且不應使用其他內容(除非經過正確測試)是可以的。 假設您只需要獲取指令指針,就可以從代碼的其他部分跳回來,然后僅測試行為的這一部分。

我不會完全跳過測試。 該文檔正確指定了特定於平台的組件。 如果代碼需要某種奇怪的體系結構上缺少的特定內容,那么如果測試失敗會很好。 對於更多奇特體系結構的用戶來說,它也可以作為一個不錯的模板來添加自己的測試,從而使代碼整體上更加健壯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM