Ожидается, что шпион должен быть однажды вызван. Звонили 0 раз - PullRequest
0 голосов
/ 07 мая 2020

// Это мой компонент, в котором вызывается метод службы isAuth. Метод задачи

export class DefaultComponent implements OnInit {

  constructor(public defaultService: DefaultService) { }

  ngOnInit(): void { }


  isTask(id) {
    if (id) {
      this.defaultService.isAuth(id);
    }
  }

}

// это мой код службы

import {Injectable} from '@ angular / core ';

@Injectable({providedIn: 'root'})
export class DefaultService {
    constructor() { }

    isAuth(id: string) {
        return true;
    }
}

// это мой модульный тест, где я хочу убедиться, что метод службы вызывается или нет

  it('should call isAuth api when isTask method is called', () => {
    component.isTask(123);
    const defaultService = TestBed.inject(DefaultService);
    spyOn(defaultService, 'isAuth');
    expect(defaultService.isAuth).toHaveBeenCalledTimes(1);
  });

// также попробуйте с

  it('should call isAuth api when isTask method is called', () => {
    const defaultService = TestBed.inject(DefaultService);
    spyOn(component, 'isTask').and.callThrough();
    spyOn(defaultService, 'isAuth');
    expect(defaultService.isAuth).toHaveBeenCalledTimes(1);
  });

1 Ответ

0 голосов
/ 09 мая 2020

Код работает нормально. Я импортировал файл с

Import { DefaultService } from './defaultService';

, но фактическое имя файла - defaultservice.ts, поэтому оно должно быть

Import { DefaultService } from './defaultservice';

Vscode не показывал никаких предупреждений, а также angular не дал никаких ошибок. Возможно, он не проверял URL-адрес пути с учетом регистра.

...