2017-04-18 29 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