2012-09-26 118 views
1

我是JUnit的初學者和設計模式,所以請原諒我。JUnit測試和Google Guice

我讀這個技術的網頁:

http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&sqi=2&ved=0CB4QFjAA&url=http%3A%2F%2Ftechruminations.wordpress.com%2F2011%2F05%2F30%2Fsales-tax-problem-form-thoughtworks-for-interview%2F&ei=QBVjUIHgDYWAiQefzoHoBQ&usg=AFQjCNFIBDF10v9zEMRpAIgl9Yi7DZ172w&sig2=E-Dwtx9UaU4lBbyD0j9bww

我能理解實際的編碼和類組織等,混淆我都低於相關的兩個問題這一特定問題的唯一的事情:

  1. 它使用了一個名爲「依賴注入」的設計模式,使用Google的Guice,但是,我發現我可以在不使用此設計模式的情況下實現相同功能。我不知道在這個問題中使用依賴注入是不是必須的?

  2. 由於我是JUnit的新手,我的理解是他爲購物車,項目編寫測試用例並單獨測試以證明其正確性。但是爲什麼他需要最終的「構建和部署」部分來編譯和運行測試程序,因爲我可以輕鬆地做到這一點,而無需創建該xml文件,只需在Eclipse中右鍵單擊並選擇「作爲JUnit測試運行」即可。

請給我一些關於JUnit和設計模式的幫助,謝謝!

+0

您希望使用依賴注入「解決」的動機是什麼? Spring是一個非常流行的框架,它大大地利用了DI。坦率地說,它鼓勵爲您的代碼提供很多優秀的設計,從而使您的代碼更易於測試,維護和使用。另外,DI並不複雜。你是否也許在這個話題上陷入困境? (我必須自己去打這樣的想法。) – Marvo

回答

2
  1. 吉斯是一個依賴注入框架,它是用於管理對象和它們的依賴的長鏈,和更高改變實現一個非常有用的工具。對於這個問題或任何問題,這不是嚴格必要的,但是在某些情況下您可能會發現它非常有用。

    • 在您發佈的示例中,僅有一個ItemIntf實現者,並且只有一個CartIntf實現者,並且只有一個TaxCalculatorIntf實現者。因爲這些都與Guice綁定,所以稍後您可以編寫CartIntf的另一個實現(比如SessionBasedCart),並通過更改模塊中的單行來更改您的類使用的實現。
    • 同樣,如果Item需要額外的依賴項,例如ItemCatalog,則不需要更改任何其他文件。 Item可以簡單地注入ItemCatalog。
    • 最後,通過依賴注入框架,你可能會發現你的類更容易測試。對於像ServiceTaxCalculator這樣的類,如果它調用任何外部依賴關係,編寫一個測試傳遞這些依賴關係(而不是讓您的類使用new運算符並稍後替換它們)非常容易。
  2. 構建和部署部分指的是所謂的Ant工具,它是使用XML來指定編譯指令和依賴如JUnit的一種方式。 Eclipse有一套用於管理類路徑和管理JUnit依賴關係的內置工具,這意味着您不需要自行構建其中的一個。但是,如果您想在Eclipse之外運行測試,則可能需要創建一個類似於該文件的文件。

你可以閱讀更多關於Apache Ant,看看到底有什麼可以爲你的項目做的,也瞭解更多關於Google Guice爲什麼依賴注入可以對某些項目是個好主意。

+0

謝謝,真的有幫助 – Kevin

+0

雖然理解起來有點困難,而且它的概念要消化得更多一些,但如果您正在處理任何複雜的項目。螞蟻是偉大的,但Maven處理很多東西,最終編寫了大量的Ant腳手架。它可以讓你專注於你的應用,而不是構建你的應用。 – Marvo