gpt4 book ai didi

java - Mockito 模拟一个返回值并验证它

转载 作者:搜寻专家 更新时间:2023-10-30 21:39:31 25 4
gpt4 key购买 nike

我有这个类,想创建一个模拟来返回并验证返回值“50”:
QAService.java:

@Path("/QAService")
public class QAService {
@GET()
//@Path("/")
@Produces("text/plain")
public String getServiceInfo() {
return "50";
}

我对 mock by defintion 的理解是,我可以创建一个实现类的假对象和尚未开发的 mock 函数,这样我就可以测试接口(interface)。

我仍然在创建这个测试来测试没有界面的模拟。我如何验证它?:
QAServiceTest.java:

public class QAServiceTest {

@Test
public void getserviceTest () {

QAService qasmock = mock(QAService.class);
when(qasmock.getServiceInfo()).thenReturn("50");
String expected = "50";
assertEquals(expected, qasmock.getServiceInfo());
}
}

最佳答案

Junit 只会运行用@Test 注释的方法,所以添加它

@Test
public void getserviceTest () {
QAService qasmock = mock(QAService.class);
when(qasmock.getServiceInfo()).thenReturn("50");
String expected = "50";
assertEquals(expected, qasmock.getServiceInfo());
}

另外,您应该verify()您的模拟期望确实发生了。

verify(qasmock, times(1)).getServiceInfo();

请注意,您似乎想要测试 QAService,但您实际上并没有在这里这样做。您只是在测试模拟。这不是一回事。

自己创建 QAService 对象并使用它。

关于java - Mockito 模拟一个返回值并验证它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22099264/

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