public class Demo{
    public static CustomObject processMethod(String str1, String str2){
        //do something
        Demo1.processMethod1(str1,str2);
        Demo2.processMethod2(str1,str2);
        return custom Object;
    }
}

public class Demo1{
    public static void processMethod1(String str1, String str2){}
}

public class Demo2{
    public static void processMethod2(String str1, String str2){}
}

我对单元测试还是个新手.在为类Demo process Method创建测试时,如何跳过处理方法1和处理方法2的执行?

推荐答案

请注意,默认情况下,mocks上的void方法不执行任何操作!

您可以使用Mockito框架中的doThrow()、doAnswer()、Donothing()、doReturn()系列方法中的任何一种来模拟空方法.

例如,

Mockito.doThrow(new Exception()).when(instance).methodName();

或者如果你想把它和后续行为结合起来,

Mockito.doThrow(new Exception()).doNothing().when(instance).methodName();

或者什么都不做:

Mockito.doNothing().when(spy).methodToMock();

或者,您可以调用REAL方法

Mockito.doCallRealMethod().when(<objectInstance>).<method>();
<objectInstance>.<method>();

或者,您可以调用该类的所有方法的实际方法,如下所示:

<Object> <objectInstance> = mock(<Object>.class, Mockito.CALLS_REAL_METHODS);

Java相关问答推荐

替换com. sun. jndi. dns. DnsContextFactory Wildfly23 JDK 17

Apache POI:使用反射获取zoom 级别

Java中是否有某种类型的池可以避免重复最近的算术运算?

Java LocalTime.parse在本地PC上的Spring Boot中工作,但在Docker容器中不工作

测试期间未执行开放重写方法

有没有办法让扩展变得多态?

如何从错误通道回复网关,使其不会挂起

在Java中如何从Executors.newFixedThreadPool(MAX_THREAD_COUNT())迁移到虚拟线程

我可以在MacOS上使用什么Java函数来在适当的设备上以适当的音量播放适当的alert 声音?

格式中的特定回录键-值对

在JDK 1.8源代码中,为什么使用A-B 0来确定哪个更大,而不是A B?

声明MessageChannel Bean的首选方式

buildDir:File!&#的getter解决方案是什么?39.被抛弃

如何在ApacheHttpClient 5中为单个请求设置代理?

具有多个分析模式的复杂分隔字符串的正则表达式

如何在单元测试中获得我的装饰Mapstruct映射器的实例?

ControlsFX RangeSlider在方向垂直时滞后

ReturnedRect在升级后反转

Spring Integration SFTP 连接失败 - 无法协商 kex 算法的密钥交换

Java 中的 IS 关系