我正在为“ 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
}
任何帮助将不胜感激
谢谢
希望我能解决您的问题,但是正如我在评论中提到的那样,您可以稍微更改方法并创建可以被嘲笑的方法。
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
希望对您有帮助,马蒂亚斯问候