java Mockito测试返回类型是否与预期相同
我非常沮丧,因为我无法理解这一点。我看过很多文章,但我不知道如何解决这个问题,但我认为我忽略了一些非常简单的东西
我有一个带有两个端点的类,其中一个是:
@GET
@Path("courses")
@Produces(MediaType.APPLICATION_JSON)
public Response courses(@QueryParam("token") String token) {
Integer studentId = iStudentDAO.getStudentIdByToken(token);
if(studentId == null){
return Response.status(403).build();
} else {
GetStudentsResponse studentCourses = iStudentDAO.getStudentCourses(studentId);
return Response.status(200).entity(courses.name).build();
}
}
此方法应始终返回响应。地位这正是我想要测试的。我知道不可能对实际响应(200或403)进行单元测试,但我想知道如何测试至少是否有响应。返回状态。我在我的Maven项目中使用Mockito
@Test
public void testGetAllCourses () {
String token = "100-200-300";
StudentRequests studentRequests = mock(StudentRequests.class);
when(studentRequests.courses(token)).thenReturn(Response.class);
Response expected = Response.class;
assertEquals(expected, studentRequests.courses());
}
有人能告诉我如何做到这一点吗?:)
# 1 楼答案
你应该能够测试你的具体反应。 假设方法
courses
位于类Controller
中。这是你要测试的类,你的目标应该是测试这里的代码,这是你在控制器中编写的代码。 下面是一个例子:类似地,在下一个测试用例中,您可以模拟
IStudentDAO
,返回一个studentId
,然后为这个studentId
设置课程,并验证您是否在响应中得到了它们