我想模拟一个在代码中使用new运算符创建的对象。我不想使用电源模拟功能。我怎样才能做到这一点。 我正在使用战略模式与责任链模式 我有的示例代码是
ValidationHandlerProcessor validationHandlerProcessor = new ValidationHandlerProcessor();
List<ValidationHandler> dataValidationHandlers = validationHandlerProcessor.getDataValidationHandlers();
dataValidationHandlers.add(new abcHandler());
validationHandlerProcessor.validate(componentInfoInput);
答案 0 :(得分:0)
继承自ValidationHandlerProcessor并创建一个新类ValidationHandlerProcessorMock,现在在此模拟器中使用validate方法或您想要模拟的任何方法。
public class ValidationHandlerProcessorMock extends ValidationHandlerProcessor{
public void validate(args){
// write mock code here
}
}
现在在测试文件中使用
ValidationHandlerProcessor validationHandlerProcessor = new ValidationHandlerProcessorMock();
答案 1 :(得分:0)
简单地说:你不能。
模拟调用 new 的功能需要转向PowerMock(ito)或JMockit框架。
真正的答案是:将您的生产代码修改为不在此处拨打新电话;例如
长话短说:在参与PowerMock或其他框架之前,参与学习如何创建可测试的代码。例如,请观看这些videos。