Для приложения Mule 4 EE я пишу интеграционные тесты, используя JUnit4 и Rest Assured. В тесте я пытаюсь убедиться, что определенные сообщения регистрируются приложением. Как я могу это сделать?
Я написал приложение для клиента и прикрепил его к root регистратору, но он не получает никаких сообщений. Обновление - это не работает, поскольку среда выполнения Mule выполняется в отдельном процессе, и тест не может подключиться к регистратору среды выполнения.
static class TestAppender extends AppenderSkeleton {
public List<org.apache.log4j.spi.LoggingEvent> events =
new ArrayList<org.apache.log4j.spi.LoggingEvent>();
public void close() {}
public void clearLog() {
events.clear();
}
public boolean requiresLayout() {
return false;
}
@Override
protected void append(LoggingEvent event) {
events.add(event);
}
}
и тесту
// is not working
@Test
public void test_log_msg() throws Exception {
TestAppender testAppender = new TestAppender();
Logger.getRootLogger().addAppender(testAppender);
// perform some action that causes logging
assertEquals(testAppender.events.size(), 1);
}
Любая помощь будет принята с благодарностью.
В частности, я пытаюсь проверить, работает ли кэширование для моего API. Я собирался сделать это, проверяя сообщения, которые я регистрирую в приложении, когда происходит кэширование. Если есть более элегантный подход к этому, пожалуйста, дайте мне знать.