Тестирование с компонентом и сервисом Jasmine - PullRequest
0 голосов
/ 28 августа 2018

Мне было интересно, как я могу проверить следующий код в Angular?

create() {
        this.loading = true;
        const email = this.email.value.originurl;

        this.emailService.create(data).subscribe((id) => {
          this.setID(id);
          this.info();
          this.loading = false;
        });
      }

1 Ответ

0 голосов
/ 28 августа 2018

это только один способ, есть несколько вещей, которые нужно протестировать в зависимости от того, какую ошибку вы хотите поймать раньше

Первый код Refactor, в этой строке метод извлечения

          const email = getEmail();

это новый метод для этого, так что мы можем следить за этим позже

       getEmail():string {
       return this.email.value.originurl;
      }

Затем создайте макет службы в файле .SPEC

    let  mockEmailService = jasmine.createSpyObj(['create']);

Затем на испытательном стенде обратите внимание на значение поставщика здесь

      TestBed.configureTestingModule({
  declarations:[Component1, Component2],
  imports: [HttpClientTestingModule,SomeModule],

  providers: [
    {provide: EmailService, useValue: mockEmailService}
  ]
  ...

  ....
    });
  }));

Затем на модульном тесте

   it('should call email service create on create() at least once', () => {

  //Arrange

  spyOn(component,'getEmail').and.returnValue('mockemail@emailer.com');
  mockEmailService.create.and.callThrough();

  //Act
  component.create();
  //Assert
  expect(mockEmailService.create).toHaveBeenCalledTimes(1);


});

это просто пример, опять же, просто чтобы показать вам, что вы можете сделать в ПЕРВЫЙ. Не стесняйтесь изменить это и познакомьтесь с насмешками, шпионами и испытательным стендом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...