2014-04-06 46 views
1

在我的嘲笑類的一個方法,我需要用類似這樣的簽名的方法創建一個expectEasyMock的3.2:創建一個預期()對於採用通用作爲參數

public <T extends Object> T createInitInstance(Class<T> cast) 

我返回的內容會根據cast的說法而有所不同。它將是另一個模擬對象,其類型由cast指定。一些我試過的方式包括:

expect(core.createInitInstance(anyObject(QueryParserPlugin.class))).andReturn(queryPlugin); 

expect(core.createInitInstance(isA(QueryParserPlugin.class))).andReturn(queryPlugin); 

expect(core.createInitInstance(isA(Class.class))).andReturn(queryPlugin); 

哪裏queryPlugin是類QueryParserPlugin的模擬。前兩個給出一個編譯器錯誤,他說:

required: Class<T> 
found: QueryParserPlugin 

第三個編譯,但總是返回空,可能是因爲它不符合預期,並模擬與createNiceMock創建。

任何想法如何我可以正確指定參數?

回答

2

這最終是一個Java的問題,而不是EasyMock的一個,但這是什麼工作:

expect(core.createInitInstance(isA(QueryParserPlugin.class.getClass()))).andReturn(queryPlugin); 
相關問題