2012-01-28 36 views
4

我正在尋找一個hamcrest matcher,其行爲方式與SamePropertyValuesAs相同,但是如果屬性不是原始類型,則可以使用其中一個標準Java類(字符串,整數等)或這些(集合或數組)之一的化合物,那麼它也會對這些屬性進行遞歸匹配。遞歸SamePropertyValuesAs匹配器在hamcrest

這裏有一個匹配器嗎?還是我必須自己推出?

+0

如果你沒有寫這樣的匹配器,你將如何確定沒有匹配的元素。因此,列表A中的第三個對象具有數組B,其第15個元素具有映射D,其對於鍵E的值具有數組F,當預期非空時,其第三值爲空。您的失敗消息看起來能夠確定哪個對象的哪個字段失敗了? – 2012-01-28 00:46:37

+0

a [3] .b [15] .d(e).f [3]不應該是null。 – 2012-01-28 02:27:03

+0

你是否真的希望能夠通過遞歸傳遞那麼多信息?聽起來你會需要推出自己的。如果有效,請發佈。 – 2012-01-28 02:28:55

回答

7

潛在的問題現在可以通過由Shazam(我工作的地方)的工程師編寫的庫來解決。這是一個名爲Shazamcrest的bean比較庫。

這是非常強大的,併產生非常好的診斷。

https://github.com/shazam/shazamcrest