2012-07-31 29 views
1

我正與使用Apache XMLBeans的(延伸org.apache.xmlbeans.XmlObject爲XML的結構元件的接口,用於延長org.apache.xmlbeans.impl.values.XmlComplexContentImpl這些接口實現)如何存根/模擬XMLBeans對象進行測試?

我得到了一個應用程序的工作下列種功能:

  • 一個XML對象被傳遞給方法的一些數據
  • 基於該數據,對於該XML對象
    • 使用XML對象的addFoo產生子內容()中加入Ë lements等

現在我想有此功能的測試,但我不知道什麼是有用於測試該XML對象的最佳方式(我想存根/模擬對象來維護子樹狀態以便於測試)。一些選項:

  • 我試圖實例化這些FooImpl執行對象,但它們需要參考org.apache.xmlbeans.SchemaType S型
    • 是否有某種方式來實例化這些?
    • 給予空/嘲笑的SchemaType與NPE結束時的東西被添加
  • 生成stub類與一些需要的方法將工作,但與許多(> 100)的方法最終產生
  • 使用的Mockito但是爲了讓xml樹結構狀態很容易測試,我需要使用doAnswer()等。

有些想法嗎?

BR,Touko

回答

2

發現自己,答案是很容易:XMLBeans的接口有實例豆類,例如工廠類:

Address.Factory.newInstance() 
2

我知道,這是不是你要找的答案,但在這裏不言而喻反正:

不要模仿的類型你不用管

參考文獻:

用於您的問題:什麼是你想測試? Apache XML bean按預期工作?或者你在編寫一個XML工具?

+0

好一點。我試圖測試使用XMLBeans創建XML結構的業務功能。(所以我期望XMLBeans按預期工作) – Touko 2012-07-31 10:10:42

+0

我希望我聽起來不夠不友好,但如果您的業務邏輯關心XML,那麼您只能編寫一個XML相關工具。如果您正在編寫任何其他應用程序,這意味着您已將業務邏輯與將應用程序連接到外部世界的粘合代碼混合在一起,並且您可能想了解如何將這兩者分開。一個很好的參考是[六角形體系結構](http://alistair.cockburn.us/Hagagonal+architecture) – Augusto 2012-07-31 10:16:26

+0

我對「業務功能」的使用不太好。我正在測試的特定功能對生成的XML文檔是「分頁」,因此它處於業務邏輯和XML的邊緣。 – Touko 2012-08-01 07:48:16

相關問題