Я очень новичок в модульном тестировании 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). Если все прошло хорошо, сервер должен ответить: «Ваша схема успешно создана!».
Кто-нибудь может мне помочь?
rest.initialize(DatabaseSchema)
,DatabaseSchema
— это файл JSON. - person Ion Morozan   schedule 27.05.2012rest
— мошенник. Это объект, который отвечает на то, что вы ему говорите. Это не ваш сервер отдыха. Вы тестируете Mockito вместо того, чтобы тестировать свой сервер. Вам не нужен Mockito для таких тестов. - person JB Nizet   schedule 27.05.2012HttpClient
и фактически отправить запрос на URL-адрес API сервера? Но такие тесты не являются юнит-тестами, потому что я тестирую отдельные методы! Я думаю, что я путаю или это не ясно для меня. - person Ion Morozan   schedule 27.05.2012initialize
на стороне сервера получает файл JSON, например:{"kind":"Note", "property":["id","name","note","date"]}
, а затем после разбора JSON и извлечения свойств создает базу данных с этой схемой, гдеkind
— имя БД, аproperties
— поля (столбцы). Я обновил вопрос с кодом этого метода. Затем после инициализации я хочу протестировать метод Add, Update, Delete, Get. - person Ion Morozan   schedule 27.05.2012