У меня есть сервис, который я объявляю как
@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 'правильно?