2017-04-18 28 views
0

我想模擬一個在代碼中使用新運算符創建的對象。我不想使用功率模擬功能。我怎麼能做到這一點。 我使用的策略模式與責任鏈模式的這種 示例代碼,我是從ValidationHandlerProcessor模擬一個對象,它由java中的新運算符創建而沒有功率模擬功能

ValidationHandlerProcessor validationHandlerProcessor = new ValidationHandlerProcessor(); 

List<ValidationHandler> dataValidationHandlers = validationHandlerProcessor.getDataValidationHandlers(); 

dataValidationHandlers.add(new abcHandler()); 

validationHandlerProcessor.validate(componentInfoInput); 
+0

[我的文章在這裏](https://github.com/mockito/mockito/wiki/Mocking-Object-Creation)應該給你一些想法。是的,我是原作者,儘管我的名字沒有出現在該頁面上。 –

+0

你打算模擬validationHandlerProcessor –

+0

@DhruvRajSinghRathore:我想模擬validationHandlerProcessor.validate(componentInfoInput)行 –

回答

0

繼承並創建一個新的類ValidationHandlerProcessorMock而現在在這個模擬要嘲笑validate方法或任何方法。

public class ValidationHandlerProcessorMock extends ValidationHandlerProcessor{ 

    public void validate(args){ 
     // write mock code here 
    } 

} 

現在在測試文件中使用

ValidationHandlerProcessor validationHandlerProcessor = new ValidationHandlerProcessorMock(); 
0

簡單地說:你不能。

的能力,模擬調用需要求助於PowerMock(ITO)或JMockit框架。

真正的答案是:將您的產品代碼重新打印到而不是撥打此處的電話;例如,通過使用依賴注入被測提供類,其他類的一個實例

  • 使用依賴注入
  • 提供工廠,提供你所需要的類的實例(然後你工廠是一種嘲笑的事情,它返回無論你想讓它返回)

長話短說:在PowerMock或其他框架活動之前,搞學習如何創建可測試的代碼。例如,請觀看這​​些videos