2012-10-16 24 views
3

有沒有辦法如何單元測試eclipse對話框和SWT/Jface小部件?或者更好 - 是否有一些jar /框架可以幫助我模擬Shell或Composite(這樣我就不必嘲笑太多的方法)?嘲笑eclipse SWT/JFACE對話框和小部件

+0

剛剛看到你的[上一個問題](http://stackoverflow.com/questions/12820367/eclipse-gui-testing-tool)。請詳細說明並解釋這個問題是如何不同以及你想知道的。 – Baz

+0

之前的靜默是關於GUI(集成)測試又名宏錄製/回放。由於我找不到任何合適的工具來做這件事,所以我正在考慮更深入的單元測試,我的對話框/小工具,所以這個問題是關於單元測試一些小工具和他們的方法 - 嘲笑swt小工具等等。 – mawek

回答

0

SWTBot應該是第一個要看的東西。

Here是Vogella關於如何使用SWTBot的一個很好的教程。

最後,here是另一個關於SWTBot的SO問題。

2

您正在尋找一個模擬SWT控件的框架。在使用TDD時或測試必須可靠時,這通常被認爲是最佳實踐。

SWTBot不嘲笑SWT。當使用SWTBot時,目標代碼使用主機OS的標準SWT實現來執行。 SWTBot檢查並從另一個線程觸發SWT控件。這種方法不會將代碼與環境隔離,根據主機平臺和影響SWT的其他環境差異,測試可能會給出不同的結果。

不幸的是,像Mockito或JMockit這樣的通用模擬庫不能用於模擬SWT,因爲缺乏可注入構造函數,驗證包,層次結構以及最終類和方法的代碼。對於像SWT這樣的庫,您需要使用自定義存根。搜索不顯示任何SWT模擬庫。因此我開始在https://github.com/westbury/SWT-Mock

+1

剛剛遇到這個答案,因爲我正在尋找沿線的任何東西。看看你的SWT-Mock項目。缺點是您必須更改現有項目中的大量代碼。你有沒有考慮採用另一種方法? SWT依靠平臺特定的軟件包來實現SWT。如何創建一個類似的(無頭模擬)SWT包來取代平臺特定的實際包並對其進行測試?好處將是一個完全可定製的,但二進制兼容的替代品... –