これはjunitとLogbackの問題だと思います。私のプロジェクトでは、ロギングはslf4jによって行われます。ロギング実装はLogbackです。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
がログに出力されます。
ログでデバッグするときに、このような種類の予想される例外が多すぎます。ログからそれらを削除する方法があるのでしょうか?もちろん、期待していない他の例外も印刷します。
logging implとして何を使用していますか? – davidxxx
@ davidxxx、Logbackを使用しています。 – mumofuronghua