为 LoggingEvent 返回 False 到 getFormattedMessage
Returning False to getFormattedMessage for LoggingEvent
我正在使用 Appender class 的 mockAppender 方法,并且我正在尝试弄清楚如何使以下代码片段 return 如果未记录以下文本,或者 .doAppend
根本没有被调用。
verify(mockAppender).doAppend(argThat(new ArgumentMatcher() {
@Override
public boolean matches(final Object argument) {
return ((LoggingEvent) argument).getFormattedMessage().contains(
"Sending request to partner: "
+ "https://<URL>/hosted/api/tokenize with args");
}
}));
如果我理解这个问题,只需 return 相反:
return !((LogginEvent) ... etc.
作为建议,您可以考虑在验证中使用@Captor,然后断言@Captor 的值:
ArgumentCaptor<LoggingEvent> argument = ArgumentCaptor.forClass(LoggingEvent.class);
// or more succinct to use a field with @Captor annotation
verify(mockAppender).doAppend(logEventCaptor);
assertFalse(logEventCaptor.getValue().contains("theTextYouWantToExclude");
谢谢。我也想出了另一种方法。在验证方法上使用附加参数:
verify(mockAppender, never()).doAppend(argThat(new ArgumentMatcher() {
@Override
public boolean matches(final Object argument) {
return ((LoggingEvent) argument).getFormattedMessage().contains(
"Sending request to partner: "
+ "https://<URL>/hosted/api/tokenize with args");
}
}));
我正在使用 Appender class 的 mockAppender 方法,并且我正在尝试弄清楚如何使以下代码片段 return 如果未记录以下文本,或者 .doAppend
根本没有被调用。
verify(mockAppender).doAppend(argThat(new ArgumentMatcher() {
@Override
public boolean matches(final Object argument) {
return ((LoggingEvent) argument).getFormattedMessage().contains(
"Sending request to partner: "
+ "https://<URL>/hosted/api/tokenize with args");
}
}));
如果我理解这个问题,只需 return 相反:
return !((LogginEvent) ... etc.
作为建议,您可以考虑在验证中使用@Captor,然后断言@Captor 的值:
ArgumentCaptor<LoggingEvent> argument = ArgumentCaptor.forClass(LoggingEvent.class);
// or more succinct to use a field with @Captor annotation
verify(mockAppender).doAppend(logEventCaptor);
assertFalse(logEventCaptor.getValue().contains("theTextYouWantToExclude");
谢谢。我也想出了另一种方法。在验证方法上使用附加参数:
verify(mockAppender, never()).doAppend(argThat(new ArgumentMatcher() {
@Override
public boolean matches(final Object argument) {
return ((LoggingEvent) argument).getFormattedMessage().contains(
"Sending request to partner: "
+ "https://<URL>/hosted/api/tokenize with args");
}
}));