gpt4 book ai didi

java - 使用 EasyMock 跳过 junit 测试用例中的方法调用?

转载 作者:行者123 更新时间:2023-12-01 18:57:39 30 4
gpt4 key购买 nike

我正在为“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
}

任何帮助将不胜感激

谢谢

最佳答案

我希望我得到了你的问题,但正如我在评论中提到的,你可以稍微改变一下方法并创建一个可以被 mock 的方法。

void headersection(Object child) {
headerobject = getInformationHeader(/*parameter*/)
//lines of code
}

InformationHeader getInformationHeader(/*parameter*/) {
return new InformationHeader(parameter_1,parameter_2,parameter_3,parameter_4);
}

我不知道存储 headersection 方法的类名,假设为SectionService。现在,您可以使用 Mockito 创建一个所谓的 spy

@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是一个处理 spy 调用的 stackoverflow 问题 here is the Mockito documentation.

我希望这有帮助,问候马蒂亚斯

关于java - 使用 EasyMock 跳过 junit 测试用例中的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59662267/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com