2013-08-30 77 views
0

我正在嘗試使用MRUnit,但沒有一個我見過的例子與我正在嘗試做的非常匹配。如何測試包含突變的Reducer

我的reducer輸出一個關鍵和突變,但我似乎無法將突變與期望的進行比較。它顯示的對象爲相同,但爲0的地址,並出現以下錯誤:

junit.framework.AssertionFailedError: expected: <[email protected]> but was <[email protected]> 

我使用reduceDriver.run()方法,並嘗試與我的實際預期突變對象的assertEquals 。有什麼我失蹤?

感謝任何輸入。

回答

0

突變沒有適當的equals()實現。最好的辦法是比較getUpdates()和getRow()的結果。它們分別返回一個List和byte [],這些很容易比較。

0

突變有一個合適的equals()方法,至少它在1.4.x行中有。但是,該方法會調用一個專用的serialize()方法來修改要檢查的數據。

我已經在一個新的突變,連載引擎蓋下稱包裹突變解決此得到了過去:

assertEquals(expectedMutation, new Mutation(actualMutation)); 
0

您可以擴展突變,並通過新類mrunit。只需在新課程中覆蓋等於。

相關問題