Я думаю, что это проблема юнита и журнала. В моем проекте ведение журнала выполняется через slf4j. Реализация журнала - это журнал.В Junit, как предотвратить печатание ожидаемого исключения, которое бросается намеренно и поймано уже в журнале?
Так у меня есть класс:
@Component
@Slf4j
public class A {
private final ObjectMapper objectMapper = new ObjectMapper();
private static final String DEFAULT_REPLY = "just continue...";
public String doSomething(Object value) {
try {
return objectMapper.methodAbc(value);
} catch (JPException e) {
log.error("Exception while processing value", e);
return DEFAULT_REPLY;
}
}
}
и его тестовый класс
@RunWith(MockitoJUnitRunner.class)
public class ATest {
@Before
public void init() {
processor = new A();
}
@Test
public void test() throws Exception {
ObjectMapper mockMapper = mock(ObjectMapper.class);
JP mockJp = mock(JP.class);
Exception thrownException = new JPException(mockJp, null);
when(mockMapper.methodAbc(any())).thenThrow(thrownException);
String result = processor.doSomething("abc");
assertTrue(result.equals("just continue..."));
}
}
У меня нет никаких проблем с самого теста. Так же, как вы можете видеть, в тесте JPException
будет распечатываться в журнале, потому что он намеренно брошен.
Когда я отлаживаю журналы, таких ожидаемых исключений слишком много, мне просто интересно, есть ли способ удалить их из журналов? И, конечно, по-прежнему печатать другие исключения, которые не ожидаются.
Что вы используете в качестве журналиста? – davidxxx
@ davidxxx, мы используем Logback. – mumofuronghua