| package org.mockito.junit; |
| |
| import org.junit.runners.model.InitializationError; |
| import org.mockito.internal.junit.MismatchReportingTestListener; |
| import org.mockito.internal.junit.MockitoTestListener; |
| import org.mockito.internal.runners.RunnerFactory; |
| import org.mockito.internal.runners.StrictRunner; |
| import org.mockito.internal.util.SimpleMockitoLogger; |
| import org.mockito.internal.util.Supplier; |
| |
| import java.lang.reflect.InvocationTargetException; |
| |
| public class TestableJUnitRunner extends MockitoJUnitRunner { |
| |
| private final static ThreadLocal<SimpleMockitoLogger> LOGGER = new ThreadLocal<SimpleMockitoLogger>() { |
| protected SimpleMockitoLogger initialValue() { |
| return new SimpleMockitoLogger(); |
| } |
| }; |
| |
| public TestableJUnitRunner(Class<?> klass) throws InvocationTargetException, InitializationError { |
| super(new StrictRunner(new RunnerFactory().create(klass, new Supplier<MockitoTestListener>() { |
| public MockitoTestListener get() { |
| return new MismatchReportingTestListener(LOGGER.get()); |
| } |
| }), klass)); |
| } |
| |
| public static SimpleMockitoLogger refreshedLogger() { |
| return LOGGER.get().clear(); |
| } |
| } |