gpt4 book ai didi

java - 使用 Mockito 跳过方法执行

转载 作者:行者123 更新时间:2023-12-05 03:27:50 29 4
gpt4 key购买 nike

我正在使用 Mockito 进行单元测试,我想跳过方法的执行。

我引用了这张票 Skip execution of a line using Mockito .在这里,我假设 doSomeTask() 和 createLink() 方法在不同的类中。但就我而言,这两种方法都在同一个类 (ActualClass.java) 中。

//Actual Class

public class ActualClass{

//The method being tested
public void method(){
//some business logic
validate(param1, param2);

//some business logic
}

public void validate(arg1, arg2){
//do something
}
}

//Test class

public class ActualClassTest{

@InjectMocks
private ActualClass actualClassMock;

@Test
public void test_method(){

ActualClass actualClass = new ActualClass();
ActualClass spyActualClass = Mockito.spy(actualClass);

// validate method creates a null pointer exception, due to some real time data fetch from elastic

doNothing().when(spyActualClass).validate(Mockito.any(), Mockito.any());
actualClassMock.method();
}
}

由于在执行 validate 方法时会出现空指针异常,因此我试图通过监视 ActualClass 对象来跳过方法调用,如我上面提到的票证中所述。尽管如此,问题仍未解决。 validate 方法被执行并创建一个空指针异常,因此无法覆盖实际的测试方法。

那么,如何跳过同一类中的 validate() 方法的执行。

最佳答案

如果有任何外部依赖项,可以同时使用以下两个注释。@InjectMocks@ spy 这实际上会监视原始方法。如果要跳过的方法存在于其他文件中,请使用@Spy 注释要跳过的方法所在的类的对象。

关于java - 使用 Mockito 跳过方法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71349090/

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