Реализация http наблюдателя неверна?

Создать тестовое правило:

import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.read.ListAppender;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.slf4j.LoggerFactory;

import java.util.List;
import java.util.stream.Collectors;

public class LoggerRule implements TestRule {

  private final ListAppender<ILoggingEvent> listAppender = new ListAppender<>();
  private final Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);

  @Override
  public Statement apply(Statement base, Description description) {
    return new Statement() {
      @Override
      public void evaluate() throws Throwable {
        setup();
        base.evaluate();
        teardown();
      }
    };
  }

  private void setup() {
    logger.addAppender(listAppender);
    listAppender.start();
  }

  private void teardown() {
    listAppender.stop();
    listAppender.list.clear();
    logger.detachAppender(listAppender);
  }

  public List<String> getMessages() {
    return listAppender.list.stream().map(e -> e.getMessage()).collect(Collectors.toList());
  }

  public List<String> getFormattedMessages() {
    return listAppender.list.stream().map(e -> e.getFormattedMessage()).collect(Collectors.toList());
  }

}

Затем использовать его:

@Rule
public final LoggerRule loggerRule = new LoggerRule();

@Test
public void yourTest() {
    // ...
    assertThat(loggerRule.getFormattedMessages().size()).isEqualTo(2);
}
1
задан Bobby 1 March 2019 в 00:52
поделиться

1 ответ

Вот урок по угловым наблюдаемым из угловой документации.

Основное использование и термины

В качестве издателя вы создаете экземпляр Observable, который определяет функцию подписчика. Это функция, которая выполняется, когда потребитель вызывает метод subscribe (). Функция подписчика определяет, как получать или генерировать значения или сообщения для публикации.

Чтобы выполнить созданную вами наблюдаемую и начать получать уведомления, вы вызываете ее метод subscribe () , передавая наблюдателя. Это объект JavaScript, который определяет обработчики получаемых вами уведомлений. Вызов подписки () возвращает объект Subscription, у которого есть метод unsubscribe (), который вызывается для прекращения получения уведомлений.

https://angular.io/guide/observables

0
ответ дан LearnToday 1 March 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: