Angular 9,Jasmine:在对服务进行单元测试时"Error: unreachable"



我的问题类似于Jasmine Angular 9测试失败,因为';无法访问';injectbleDefOrInjectorDefFactory的堆栈跟踪,但那里的解决方案对我不起作用。

这是我的.spec.ts文件:

import { TestBed } from '@angular/core/testing';
import { DataService } from './data.service';
import { AngularFirestore } from '@angular/fire/firestore';
import { DataServiceMock, FirestoreStub } from './mock.data.service';
describe('DataService', () => {
let service: DataService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
{ provide: DataService, useClass: DataServiceMock },
{ provide: AngularFirestore, useClass: FirestoreStub },
]
}).compileComponents();
service = TestBed.get(DataService);
service.loadData();
});
it('should be created', () => {
expect(service).toBeTruthy();
});
it('should get have 2 products in its data', () => {
expect(service.getData()).toEqual([
{
name: 'Camomile',
description: 'Camomile oil',
uses: ['topical', 'ingest'],
benefits: ['headache', 'anxiety'],
},
{
name: 'Cardamom',
description: 'oil from the cardamom seed',
uses: ['surface cleaning'],
benefits: ['joint pain', 'hygiene'],
}
]);
});
});

对于";数据服务>"应该被创建";,我得到

Error: unreachable
at injectableDefOrInjectorDefFactory (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17298:1)
at providerToFactory (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:17398:1)

如有任何帮助,我们将不胜感激。如果您需要查看其他代码,请告诉我。非常感谢!

错误:{provide:功能切换服务,useClass:{}},

更正:{provide:功能切换服务,使用值:{}}

最新更新