【发布时间】:2023-03-16 23:44:01
【问题描述】:
当我在 angular8 应用程序上使用 jasmine 运行单元测试时出现错误。 我有一个服务,在这个服务里面我注入了另一个服务
@Injectable({
providedIn: 'root'
})
export class FirstService {
constructor(private http: HttpClient, private configService: ConfigurationService) { }
当我执行 npm run test 时,我总是遇到错误:
在 afterAll ReferenceError 中抛出错误:无法访问 初始化前的“ConfigurationService” 在 Module.ConfigurationService (http://localhost:9876/_karma_webpack_/main.js:1095:112)
有什么帮助吗?
【问题讨论】:
-
您在 FirstService 中使用 ConfigurationService。因此,您必须为 ConfigurationService 创建一个模拟
-
请分享您的
.spec.ts文件内容 -
我的 .spec.ts 文件中有这个:
code describe('FirstService', () => { let configService; beforeEach(() => { configService = jasmine.createSpyObj('configService', ['getConfiguration']); TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [{ provide: ConfigurationService, useValue: configService }, FirstService] }) configService.getConfiguration.and.returnValue({ serviceRestUrl: URL }); }); it('should be created', inject([FirstService], (service: FirstService) => { expect(service).toBeTruthy(); }));code -
@faoc 你找到解决这个问题的办法了吗?
标签: angular karma-jasmine