gpt4 book ai didi

java - 在Java中测试服务层的void方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:08 25 4
gpt4 key购买 nike

我正在尝试使用 junit 测试服务类中的 void 方法。我不太确定如何测试它。

代码:

public class Service{
private static final Logger LOGGER = LogManager.getLogger(Service.class);

private final ServiceDAO serviceDAO;
private final RtyDAO rtyDAO;

public Service(ServiceDAO serviceDAO,
RtyDAO rtyDAO) {
this.serviceDAO = serviceDAO;
this.rtyDAO = rtyDAO;
}

public void voidMethod(JSONObject object) {
try {
Rty rty = serviceDAO.getSomething();
String output = rtyDAO.persist(rty);
if("TRUE".equalsIgnoreCase(output)){
LOGGER.info("Success"):
}else{
LOGGER.info("Failure"):
}
}
}

由于上述方法无效,我不知道如何测试它。我正在尝试如下:

public class ServiceTest {

@InjectMocks
Service service;

@Mock
RtyDAO RtyDAO;

@Mock
Rty rty;

@Mock
ServiceDAO serviceDAO;



@Test
public void testVoid(){
Mockito.when(serviceDAO.getSomething()).thenReturn(rty);
Mockito.when(rtyDAO.persist(rty)).thenReturn("Success");
//how to test result here if the persisting happened without any issues?
}

最佳答案

正如你所说,该方法是Void,因此很难测试。但有一个办法!您可以使用 Mockito 来证明这两个调用均正确完成。检查这个答案:Mockito : how to verify method was called on an object created within a method?

关于java - 在Java中测试服务层的void方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305544/

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