Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为集成测试设置ngrx/数据_Javascript_Angular_Ngrx_Ngrx Data - Fatal编程技术网

Javascript 为集成测试设置ngrx/数据

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)中,我正在配置模块,定义

我正在尝试设置一个集成测试,该测试将使用ngrx/数据实体从后端API服务获取一些数据

我已经安排了这次突击行动:

它应该在启动时运行测试-在我的测试用例中没有期望值,但是我正在查看控制台日志,并期望它在
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
    接口不太熟悉,但可能这也是一个问题

  • 嗯,还是没有运气加上那个,在这里分叉。