Написание модульного теста для фильтра (OncePerRequestFilter) при загрузке Spring - PullRequest
0 голосов
/ 09 июля 2019

У меня есть класс 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...