我有一个混合了spring-boot、jersey和camel应用程序的应用程序。它从一个spring启动应用程序开始。我正在编写集成测试,需要在日志上进行Assert?
例如,我需要Assertcamel路由从源a读取消息。如何对日志进行可靠Assert?有什么行业标准吗?
注:我试着找到任何解决办法,但目前,我既不知道如何解决,也不能找到现成的解决办法。
更新1:我低估的细节,但似乎很重要。我用 Kotlin
,不是 Java
. 我试着用这个答案,但不是一对一的 Kotlin
.
更新2:
这是从 Java
至 Kotlin
. ListAppender
没有足够的信息来解析中的类型 Kotlin
.
class LoggerExtension : BeforeEachCallback, AfterEachCallback {
private val listAppender: ListAppender<ILoggingEvent> = ListAppender<ILoggingEvent>()
private val logger: Logger = LoggerFactory.getLogger(ROOT_LOGGER_NAME) as Logger
override fun afterEach(extensionContext: ExtensionContext) {
listAppender.stop()
listAppender.list.clear()
logger.detachAppender(listAppender)
}
override fun beforeEach(extensionContext: ExtensionContext) {
logger.addAppender(listAppender)
listAppender.start()
}
val messages: List<String>
get() = listAppender.list.stream().map { e -> e.getMessage() }.collect(Collectors.toList())
val formattedMessages: List<String>
get() = listAppender.list.stream().map { e -> e.getFormattedMessage() }.collect(Collectors.toList())
}
kotlin:没有足够的信息来推断类型变量a
不是一个错误,但我感觉它在运行时会失败:
private val logger:logger=loggerfactory.getlogger(root\u logger\u name)作为logger
1条答案
按热度按时间2g32fytz1#
SpringBoot附带了用于JUnit4的outputcapture规则和用于JUnit5的outputcaptureextension,允许您对发送到标准输出的文本进行Assert。