[使用EasyMock在junit测试案例中跳过方法?

问题描述 投票:0回答:1

我正在为“ headersection()”方法编写测试用例。在此方法内部,它正在调用另一个类的构造函数,比方说“ InformationHeader.java”类。在此构造函数中,它将有一个称为“ makepage()”的方法。同样,“ makepage()”方法将是另一个“ createpage()”方法。

我想在我的测试案例中跳过对“ createpage()”的方法调用。请提出如何实现此方案的建议?

private void headersection(Object child) {
    headerobject = new InformationHeader(parameter_1,parameter_2,parameter_3,parameter_4);
    //lines of code
}


//InformationHeader.java
 public InformationHeader(parameter_1,parameter_2,parameter_3,parameter_4) {
    //lines of code
    makepage();
    //lines of code

  public final void makepage()
  { 
      //lines of code
      createpage();    //I wanted to skip this method call 
  }

任何帮助将不胜感激

谢谢

java easymock
1个回答
0
投票

希望我能解决您的问题,但是正如我在评论中提到的那样,您可以稍微更改方法并创建可以被嘲笑的方法。

void headersection(Object child) {
headerobject = getInformationHeader(//parameter)
//lines of code
}
InformationHeader getInformationHeader(//parameter){
   return new InformationHeader(parameter_1,parameter_2,parameter_3,parameter_4);
}

我不知道您存储标题部分方法的类名,可以说SectionService。现在,您可以使用Mockito创建一个所谓的间谍

@InjectMock
SectionService serviceToTest; 
SectionService spyServiceToTest = Mockito.spy(serviceToTest);
InformationHeader spyInformationHeader = Mockit.spy(new InformationHeader(//parameter));

现在您可以在测试的类中模拟呼叫

Mockito.doReturn(spyInformationHeader).when(spyServiceToTest).getInformationHeader(//parameter);
Mockiot.doNothing().when(spyInformationHeader).createpage(); 

here是一个堆栈溢出问题,正在处理间谍调用和here is the Mockito documentation

希望对您有帮助,马蒂亚斯问候

© www.soinside.com 2019 - 2024. All rights reserved.