/** * Returns a {@link TestRule} that captures logs for the given class. * * @param klass The class to capture logs for. * @return A {@link ExpectedLogs} test rule. */ public static ExpectedLogs none(Class<?> klass) { return ExpectedLogs.none(klass.getName()); }
@Test public void testLogsCleared() throws Throwable { final String messageUnexpected = "Message prior to ExpectedLogs."; final String messageExpected = "Message expected."; LOG.info(messageUnexpected); expectedLogs = ExpectedLogs.none(ExpectedLogsTest.class); final boolean[] evaluateRan = new boolean[1]; expectedLogs .apply( new Statement() { @Override public void evaluate() throws Throwable { evaluateRan[0] = true; expectedLogs.verifyNotLogged(messageUnexpected); LOG.info(messageExpected); expectedLogs.verifyInfo(messageExpected); } }, Description.EMPTY) .evaluate(); assertTrue(evaluateRan[0]); // Verify expectedLogs is cleared. expectedLogs.verifyNotLogged(messageExpected); expectedLogs.verifyNotLogged(messageUnexpected); }