У меня есть класс Filter, который расширяет OncePerRequestFilter. Этот фильтр используется для сбора данных аудита, а затем передается асинхронному методу для сохранения в БД.
Мне нужно написать контрольные примеры для всего этого сценария. Как этого добиться? У меня нет большого опыта в Junit.
public class AuditFilter extends OncePerRequestFilter {
private static final Logger LOGGER = LoggerFactory.getLogger(AuditFilter.class);
private AuditLogManager auditLogManager;
private String auditMode;
private List<String> urlPatterns;
/**
* @param auditLogManager - processes the audit logs.
* @param auditMode - modes of auditing (OFF,BASIC,DETAILED).
* @param urlPatterns - the URL patterns for which auditing to be done.
*/
public AuditFilter(final AuditLogManager auditLogManager, final String auditMode,
final List<String> urlPatterns) {
this.auditLogManager = auditLogManager;
this.auditMode = auditMode;
this.urlPatterns = urlPatterns;
}
@Override()
protected void doFilterInternal(final HttpServletRequest request,
final HttpServletResponse response, final FilterChain filterChain)
throws ServletException, IOException {
//capture audit data from request
try {
filterChain.doFilter(wrappedRequest, wrappedResponse);
} finally {
//capture audit data from response
// Executing asynchronous call. auditLogManager uses @Async annotation. Need i=integration test for auditLogManager code also
auditLogManager.log(auditInfo, auditMode);
}
}
}
Мне нужно выполнить модульное тестирование каждого действия, выполняемого AuditFilter и AuditLogManager (класс, имеющий асинхронный метод) во время сборки maven.