Javascript 为集成测试设置ngrx/数据
我正在尝试设置一个集成测试,该测试将使用ngrx/数据实体从后端API服务获取一些数据 我已经安排了这次突击行动: 它应该在启动时运行测试-在我的测试用例中没有期望值,但是我正在查看控制台日志,并期望它在Javascript 为集成测试设置ngrx/数据,javascript,angular,ngrx,ngrx-data,Javascript,Angular,Ngrx,Ngrx Data,我正在尝试设置一个集成测试,该测试将使用ngrx/数据实体从后端API服务获取一些数据 我已经安排了这次突击行动: 它应该在启动时运行测试-在我的测试用例中没有期望值,但是我正在查看控制台日志,并期望它在ClientDataService(/src/app/data/client/client data.service.ts)中显示日志,即: console.log('never goes here:('); 在集成测试(data.integration.spec.ts)中,我正在配置模块,定义
ClientDataService
(/src/app/data/client/client data.service.ts
)中显示日志,即:
console.log('never goes here:(');
在集成测试(data.integration.spec.ts)中,我正在配置模块,定义客户机实体类型,并包括AppDataServiceModule
,该模块依次执行以下操作:
import { NgModule } from '@angular/core';
import { ClientDataService } from './client/client-data.service';
import { EntityDataService, EntityDefinitionService } from '@ngrx/data';
@NgModule({
providers: [
ClientDataService,
],
})
export class AppDataServiceModule {
constructor(
entityDataService: EntityDataService,
clientDataService: ClientDataService
) {
entityDataService.registerService('Client', clientDataService);
}
}
如您所见,我正在按照ngrx文档的建议注册数据服务
我觉得我已经很接近了,但只需要朝正确的方向轻推一下就可以了!自定义数据服务必须扩展
DefaultDataService
。应该是这样的:
导出类ClientDataService扩展了DefaultDataService{
建造师(
http:HttpClient,httpUrlGenerator:httpUrlGenerator
) {
超级(“客户端”、http、httpUrlGenerator);
}
public getAll():可观察{
//在这里获取数据
}
}
BackendService
必须返回可观察到的:
public getClients():可观察{
//将被嘲笑
归还([
{
id:'1:将不会返回,因为它将被模拟'
},
{
id:'2:将不会返回,因为它将被模拟'
}
])
}
在我看来,还有两件事是可疑的:
可观察的
是冷的clientResolve.resolve({},{})
调用需要一个ActivatedRouteSnapshot
作为第一个参数。我对resolve
接口不太熟悉,但可能这也是一个问题嗯,还是没有运气加上那个,在这里分叉。