我對使用Corba與服務器進行通信的單元測試代碼的意見感興趣。Python中的單元測試Corba
你會嘲笑Corba物體嗎?在Python中,這是一種痛苦的屁股,因爲Corba對象的所有方法都是動態加載的。所以你基本上堅持「嘲笑任何事情」。
謝謝!
注: 我相信我說得不很清楚,所以我會盡力給一個較爲具體的例子:
的Web應用程序需要顯示包含從服務器接收數據的頁面。它通過調用server_pagetable.getData()來獲取數據,然後格式化數據,將它們轉換爲正確的python類型(因爲Corba沒有例如日期類型等),並最終創建要顯示的HTML代碼。
這就是我想測試的方法 - 接收數據並完成所有轉換並最終創建HTML代碼的方法。
我相信最直接的決定是嘲笑Corba對象,因爲它們基本上包含網絡和數據庫功能(不應在單元測試中測試)。
這只是做了很多「額外工作」 - 嘲笑所有Corba對象(有一個User對象,一個服務器會話對象,可分頁對象,一個管理對象等)。也許這只是因爲我被Corba困住了,因此我必須通過mock來反映服務器指定的對象層次。另一方面,這可能是有一些很酷的優雅的解決方案,使用Corba測試代碼,這只是沒有跨越我的想法。
是的,但不時(在我的情況下實際上很常見),你只需要測試一些直接使用Corba的功能。在我的情況下,服務器使用Corba與客戶端通信,所以如果我想測試例如我的包裝Corba界面的對象工作正常,我不得不以某種方式在測試中包含Corba。 (免責聲明:這不是我的設計,只是我繼承並必須與之合作。:-)) – 2009-12-15 14:00:06
更改這方面的設計。也不要測試Corba編譯器(除非你遇到錯誤並且需要知道如何/是否有效)。確保你的代碼設置了正確的參數。下一步是獲取服務器的源代碼,並用單元測試測試它的代碼。但避免往返(儘可能)。免責聲明:現實節拍紙。 – 2009-12-15 14:53:29