Class PropertyAndSetterInjection

java.lang.Object
org.mockito.internal.configuration.injection.MockInjectionStrategy
org.mockito.internal.configuration.injection.PropertyAndSetterInjection

public class PropertyAndSetterInjection extends MockInjectionStrategy
Inject mocks using first setters then fields, if no setters available.

Algorithm :
for each field annotated by @InjectMocks

  • initialize field annotated by @InjectMocks
  • for each fields of a class in @InjectMocks type hierarchy
    • make a copy of mock candidates
    • order fields rom sub-type to super-type, then by field name
    • for the list of fields in a class try two passes of :
      • find mock candidate by type
      • if more than *one* candidate find mock candidate on name
      • if one mock candidate then
        • set mock by property setter if possible
        • else set mock by field injection
      • remove mock from mocks copy (mocks are just injected once in a class)
      • remove injected field from list of class fields
    • else don't fail, user will then provide dependencies

Note: If the field needing injection is not initialized, the strategy tries to create one using a no-arg constructor of the field type.

  • Constructor Details

    • PropertyAndSetterInjection

      public PropertyAndSetterInjection()
  • Method Details