我对Java单元测试非常陌生,听说Mockito框架非常适合测试目的。
我已经开发了一个REST服务器(CRUD方法),现在我想对其进行测试,但我不知道如何开始?
更重要的是,我不知道这个测试过程应该如何开始。我的服务器应该在本地主机上运行,并调用该URL(例如localhost:8888)吗?
这是我到目前为止尝试过的方法,但我相当确定这不是正确的方法。
@Test
public void testInitialize() {
RESTfulGeneric rest = mock(RESTfulGeneric.class);
ResponseBuilder builder = Response.status(Response.Status.OK);
builder = Response.status(Response.Status.OK).entity(
"Your schema was succesfully created!");
when(rest.initialize(DatabaseSchema)).thenReturn(builder.build());
String result = rest.initialize(DatabaseSchema).getEntity().toString();
System.out.println("Here: " + result);
assertEquals("Your schema was succesfully created!", result);
}
这是 initialize
方法的代码。
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("/initialize")
public Response initialize(String DatabaseSchema) {
/** Set the LogLevel to Info, severe, warning and info will be written */
LOGGER.setLevel(Level.INFO);
ResponseBuilder builder = Response.status(Response.Status.OK);
LOGGER.info("POST/initialize - Initialize the " + user.getUserEmail()
+ " namespace with a database schema.");
/** Get a handle on the datastore itself */
DatastoreService datastore = DatastoreServiceFactory
.getDatastoreService();
datastore.put(dbSchema);
builder = Response.status(Response.Status.OK).entity(
"Your schema was succesfully created!");
/** Send response */
return builder.build();
}
在这个测试用例中,我想将一个Json字符串发送到服务器(POST)。如果一切顺利,那么服务器应该以“Your schema was successfully created!”的回复。
有人可以帮忙吗?
rest
只是一个模拟对象。它会回答你告诉它回答的内容。它并不是你的REST服务器。你正在测试Mockito而不是测试你的服务器。你不需要在这种测试中使用Mockito。 - JB Nizet