Как смоделировать Angular предоставленный в: 'root' сервис - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть сервис, который я объявляю как

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

и использую как

constructor(public auth: AuthService)

Я пытался издеваться над ним, используя

let mockAuthService = {
    isAuth: () => true,
    currentUser: { userName: 'Joe' }
};

TestBed.configureTestingModule({
    providers: [
        { provide: AuthService, useValue: mockAuthService }
    ]
});

Но Карма дает ошибку

Error: Can't resolve all parameters for MyComponent: (?)

Есть два варианта ее решения:

  • 1. Используйте провайдеры [] в модулях вместо обеспеченных в: 'root'
  • 2. Используйте @Inject (AuthService) publi c auth: AuthService в конструкторе компонентов

Обе опции не комильфо.

Как смоделировать сервисы с предоставленным в: ' root 'правильно?

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