Un ejemplo de spyOn utilizado en la prueba de unidad angular

Hay una matriz observable en el componente que se va a probar:

Asignar valor mediante el siguiente código:

this.checkoutDeliveryService.getSupportedDeliveryModes();

El tipo de checkoutDeliveryService: CheckoutDeliveryService

En la prueba unitaria, necesitamos aislar la implementación real de CheckoutDeliveryService creando un MockCheckoutDeliveryService.

Primero cree una instancia de mockcheckoutDeliveryService en la prueba unitaria:

Cree una clase MockCheckoutDeliveryService:

class MockCheckoutDeliveryService {
  loadSupportedDeliveryModes = createSpy();
  setDeliveryMode = createSpy();
  getSupportedDeliveryModes(): Observable<DeliveryMode[]> {
    return of();
  }
  getSelectedDeliveryMode(): Observable<DeliveryMode> {
    return of();
  }
  getLoadSupportedDeliveryModeProcess(): Observable<LoaderState<void>> {
    return of();
  }
}

El método es el mismo que el método de clase CheckoutDeliveryService real, la diferencia es que devuelve un objeto Observable vacío.

En la configuración del proveedor de TestBed.configureTestingModule, use la clase MockCheckoutDeliveryService para inyectar CheckoutDeliveryService:

Obtenga una instancia de mockCheckoutDeliveryService a través de TestBed.inject:

Utilice el código spyOn para establecer el valor de retorno del método getSupportedDeliveryModes de la clase mockCheckoutDeliveryService en of (mockSupportedDeliveryModes):

De esta manera, cuando se ejecuta la prueba unitaria, cuando el Componente llama al método getSupportedDeliveryModes de checkoutDeliveryService, automáticamente devolverá el valor que especificamos en spyOn.

Para obtener más artículos originales de Jerry, siga la cuenta pública "Wang Zixi":

Supongo que te gusta

Origin blog.csdn.net/i042416/article/details/109093037
Recomendado
Clasificación