Class Slf4jMockPolicy

  • All Implemented Interfaces:
    PowerMockPolicy

    public class Slf4jMockPolicy
    extends java.lang.Object
    implements PowerMockPolicy
    Sfl4j mock policy that injects a Mockito-created mock to be returned on calls to getLogger factory methods. The implementation returns a single mock instance per thread but it doesn't return a different mock instance based on the actual value passed to getLogger. This limitation is acceptable in most real uses cases.

    Tests that want to do verifications on the mocked logger can do so by getting the mocked instance as production code does: org.slf4j.LoggerFactory.getLogger(Class). However, it is critical that the mocked logger is reset after each test in order to avoid crosstalk between test cases.

    • Field Detail

      • LOGGER_FACTORY_CLASS_NAME

        private static final java.lang.String LOGGER_FACTORY_CLASS_NAME
        See Also:
        Constant Field Values
      • LOGGER_FACTORY_METHOD_NAME

        private static final java.lang.String LOGGER_FACTORY_METHOD_NAME
        See Also:
        Constant Field Values
      • LOGGER_CLASS_NAME

        private static final java.lang.String LOGGER_CLASS_NAME
        See Also:
        Constant Field Values
      • threadLogger

        private static java.lang.ThreadLocal<java.lang.Object> threadLogger
    • Constructor Detail

      • Slf4jMockPolicy

        public Slf4jMockPolicy()
    • Method Detail

      • applyClassLoadingPolicy

        public void applyClassLoadingPolicy​(MockPolicyClassLoadingSettings mockPolicyClassLoadingSettings)
        Description copied from interface: PowerMockPolicy
        Apply all class-loading related policies that must be present before the interception policies can take place.
        Specified by:
        applyClassLoadingPolicy in interface PowerMockPolicy
        Parameters:
        mockPolicyClassLoadingSettings - The settings objects where the class-loading policies can be applied.
      • applyInterceptionPolicy

        public void applyInterceptionPolicy​(MockPolicyInterceptionSettings mockPolicyInterceptionSettings)
        Description copied from interface: PowerMockPolicy
        Apply the interception policies, for example which methods that should be suppressed or which methods that should be intercepted and return some else than their original value.
        Specified by:
        applyInterceptionPolicy in interface PowerMockPolicy
        Parameters:
        mockPolicyInterceptionSettings - The settings objects where the interception policies can be applied.
      • initializeMockForThread

        private void initializeMockForThread​(LogPolicySupport logPolicySupport)
      • getLoggerClass

        private java.lang.Class<?> getLoggerClass​(LogPolicySupport logPolicySupport)