在Angular 9中,如果你在Jasmine测试中遇到了依赖注入错误,有几种可能的解决方法。
import { TestBed } from '@angular/core/testing';
import { MyService } from './my.service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [MyService]
});
service = TestBed.inject(MyService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
import { TestBed } from '@angular/core/testing';
import { MyService } from './my.service';
describe('MyService', () => {
let service: MyService;
let mockDependency: jasmine.SpyObj; // Replace DependencyService with the actual dependency service class
beforeEach(() => {
mockDependency = jasmine.createSpyObj('DependencyService', ['method1', 'method2']);
TestBed.configureTestingModule({
providers: [
MyService,
{ provide: DependencyService, useValue: mockDependency }
]
});
service = TestBed.inject(MyService);
});
it('should call dependency methods', () => {
service.myMethod();
expect(mockDependency.method1).toHaveBeenCalled();
expect(mockDependency.method2).toHaveBeenCalled();
});
});
通过手动配置测试模块或使用模拟对象,你应该能够解决Angular 9中的依赖注入错误,并且能够正确地进行Jasmine测试。