1
在我的嘲笑類的一個方法,我需要用類似這樣的簽名的方法創建一個expect
:EasyMock的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
創建。
任何想法如何我可以正確指定參數?