Test Unit - Null componente burlado se inyecta

Rzv Razvan:

Tengo el siguiente caso de uso:

Tengo una clase de prueba con 3 componentes, de los cuales 2 de ellas son inyectar en el tercero; Estoy utilizando JUnit y Mockito para probar

public class MyTestClass{

 @Mock
 SomeService someService;

 @Mock 
 AnotherService anotherService;

 @InjectMock
 MainService mainService;

 @BeforeMethod
 public void init() {
   initMocks(this);
 }

 @Test
 public void test(){
  when(someService.someMethod(any())).thenReturn(something);
  when(anotherService.someMethod(any()).thenReturn(something);
  mainService.someMainMerhod();
  // ...other assert logic
 }
}

Y aquí tengo el componente MainService primavera, que ha inyectado los otros dos componentes

 @Component
 public class MainService{
  @Autowired
  private SomeService someService; //Why here I have null component

  private AnotherService anotherService; // and here I have an initialized component ???

  public MainService(AnotherService anotherService){
    this.anotherService = anotherService;
  }

 // implementation
}

Pregunta 1 : ¿Por ejemplo someService es nulo cuando estoy usando tanto constructor y @Autowired?

Pregunta 2 : ¿Por qué si estoy usando sólo el constructor sin @Autowired y viceversa, todo funciona, ya que no cargue el contexto de Primavera ... Tengo pruebas de unidad ...

Datta2811:

Los estados Javadoc: ". Mockito tratará de burla Inyectar bien mediante la inyección de constructor, la inyección de setter, o inyección propiedad con el fin Si cualquiera de la estrategia falla, entonces Mockito no informará fracaso; es decir, que tendrán que proporcionar las dependencias a sí mismo. "

Por lo tanto, se producirá un error en silencio.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=365707&siteId=1
Recomendado
Clasificación