Как сбросить шпиона в Жасмин? - PullRequest
0 голосов
/ 29 января 2019

У меня проблема с установкой фиктивной службы в качестве шпиона.

 mockSelectionsService = jasmine.createSpyObj(['updateSelections']);

Затем я вызываю этот метод-заглушку дважды, каждый раз в другом тесте.Проблема в том, что когда я expect() шпион с .toHaveBeenCalledWith(), метод toHaveBeenCalledWith также содержит аргументы, которые были переданы из первого теста, который дает ложный положительный результат во втором тесте.

Как мне стереть /очистить / сбросить spyObject для моего следующего теста, чтобы он больше не считал его вызванным?

Инициализация служб / компонентов

  beforeEach(() => {
    mockSelectionsService = jasmine.createSpyObj(['updateSelections']);

TestBed.configureTestingModule({
  declarations: [QuickSearchComponent, LoaderComponent, SearchComponent, SearchPipe, OrderByPipe],
  providers: [OrderByPipe, SearchPipe, SlicePipe, {provide: SelectionsService, useValue: mockSelectionsService}],
  imports: [FormsModule, HttpClientModule]
});


fixture = TestBed.createComponent(QuickSearchComponent);
component = fixture.componentInstance;
fixture.detectChanges();

fixture.componentInstance.templates = mockTemplates;
fixture.componentInstance.manufacturers = mockManufacturers;

});

1 Ответ

0 голосов
/ 29 января 2019

const spy = spyOn(somethingService, "doSomething");

spy.calls.reset();

Сбрасывает уже сделанные вызовы шпиону.Таким образом, вы можете повторно использовать шпиона между тестами.Другой способ заключался бы в том, чтобы вставить тесты в другой describe() и добавить в него beforeEach().

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