我有这个类,想创建一个模拟返回并验证返回值“50”:QAService.java:
@Path("/QAService")
public class QAService {
@GET()
//@Path("/")
@Produces("text/plain")
public String getServiceInfo() {
return "50";
}
我对定义模拟的理解是,我可以创建一个实现类的伪对象和尚未开发的模拟功能,以便测试接口(interface)。
我仍然在创建此测试以测试没有接口(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
对象并使用它。