Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 1.18 KB

README.md

File metadata and controls

42 lines (32 loc) · 1.18 KB

wisp-logging-testing

Captures Logback logs to make it possible to do assertions on them.

Usage

The sample code block below assumes AssertJ, but this library is not tied to a particular test framework or assertions library.

class MyClass {
  fun log() {
    val logger = getLogger<MyClass>()
    logger.info("this is a log message!")
  }
}

fun `test that logs are captured`() {
  val logCollector = WispQueuedLogCollector()
  
  // Usually put this in a Before block.
  logCollector.startUp()

  // Test messages:
  MyClass().log()
  // takeMessages and takeEvents consume log entries.
  assertThat(logCollector.takeMessages()).containsExactly("this is a log message!")
  
  // Test other log data, e.g. MDC:
  MyClass().log()
  // Because the first log() call was consumed, takeEvents only returns one event.
  assertThat(logCollector.takeEvents())
    .extracting(Function { it.mdcPropertyMap })
    .containsExactly(mapOf())
  
  // It's also possible to test that nothing is logged.
  assertThat(logCollector.takeMessages()).isEmpty()
  
  // Usually put this in an After block.
  logCollector.shutDown()
}