Я создал Angular Library, которая содержит простой компонент и службу, которая выполняет HTTP-вызов и получает результат, который затем используется в компоненте.
Все работы обнаруживаются, за исключением того факта, что тестыне пройдет с ошибкой с внедрением зависимости:
Error: StaticInjectorError(DynamicTestModule)[HttpClient]:
StaticInjectorError(Platform: core)[HttpClient]:
NullInjectorError: No provider for HttpClient!
Для справки вот мой код:
@Injectable({
providedIn: "root"
})
export class MyService {
public apiUrl = "https://apiurl";
constructor(private http: HttpClient) {}
getSomeData(key: string): Observable<string> {
return this.http.get(
`${this.apiUrl}/${key}`,
{ responseType: "text" }
);
}
}
И тест:
describe('MyService', () => {
let injector : TestBed;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
MyService
],
imports: [
HttpClientTestingModule
],
});
injector = getTestBed();
});
it('should be created', () => {
const service = injector.get(MyService);
expect(service).toBeTruthy();
});
});
МойЯ думаю, это связано с @ angular-devkit, но я могу ошибаться.И да, я перепробовал все варианты и даже попытался внедрить настоящий http-клиент, который тоже не работал.