Unit testing 用于单元测试的模拟ngx Restanglar Angular 5应用程序

Unit testing 用于单元测试的模拟ngx Restanglar Angular 5应用程序,unit-testing,angular5,Unit Testing,Angular5,我看到了之前一个类似问题的答案,但我不明白如何使用它。有人能解释一下吗 我的问题- 我有一个服务方法- restoreProject(project) { this.restangular.one('projects', project.id).get(); } 我该如何模仿Restanglar呢 到现在为止,我有 beforeEach(() => { this.injector = Injector.create([ {provide:

我看到了之前一个类似问题的答案,但我不明白如何使用它。有人能解释一下吗

我的问题-

我有一个服务方法-

restoreProject(project) {
        this.restangular.one('projects', project.id).get();
    }
我该如何模仿Restanglar呢

到现在为止,我有

beforeEach(() => {

    this.injector = Injector.create([
        {provide: ConnectionBackend, useClass: MockBackend, deps: []},
        {provide: RequestOptions, useClass: BaseRequestOptions, deps: []},
        {provide: Restangular, useClass: Restangular, deps:[]},
        {provide: ProjectService, useClass: ProjectService, deps:[Restangular]}
    ]);

    this.service = this.injector.get(ProjectService);
    this.backend = this.injector.get(ConnectionBackend) as MockBackend;
    this.backend.connections.subscribe((connection: any) => this.connection = connection);

});

it('should query restore project', () => {

            this.service.restoreProject({id: 2});

            expect(this.connection.request.url).toMatch('projects/2');
        }));
但这会产生以下错误

TypeError: Cannot read property 'createRequest' of undefined
    at Object.resource.(anonymous function) [as get] (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/ngx-restangular/dist/esm/src/ngx-restangular-config.factory.js:475:1)
    at Object.elemFunction (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/ngx-restangular/dist/esm/src/ngx-restangular.js:396:1)
    at wrapper (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/lodash/lodash.js:4968:1)
    at Object.getFunction (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/ngx-restangular/dist/esm/src/ngx-restangular.js:405:1)
    at Object.wrapper [as get] (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/lodash/lodash.js:4968:1)
    at CommunicatorProjectService.restoreProject (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/src/app/budget-and-time-estimator/shared/communicator-project/communicator-project.service.ts:21:54)
    at Object.<anonymous> (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/src/app/budget-and-time-estimator/shared/communicator-project/communicator-project.service.spec.ts:35:17)
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/zone.js/dist/zone.js:392:1)
    at ProxyZoneSpec.webpackJsonp.../../../../zone.js/dist/proxy.js.ProxyZoneSpec.onInvoke (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/zone.js/dist/proxy.js:79:1)
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/zone.js/dist/zone.js:391:1)
TypeError:无法读取未定义的属性“createRequest”
at Object.resource.(匿名函数)[as get](http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/ngx-restangular/dist/esm/src/ngx restangular config.factory.js:475:1)
at Object.elemFunction(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/ngx-restangular/dist/esm/src/ngx restangular.js:396:1)
包装纸(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/lodash/lodash.js:4968:1)
在Object.getFunction(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/ngx-restangular/dist/esm/src/ngx restangular.js:405:1)
at Object.wrapper[作为get](http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/lodash/lodash.js:4968:1)
在CommunicationorProjectService.restoreProject(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/src/app/budget-和时间估计器/共享/通讯器项目/通讯器项目.服务.ts:21:54)
反对。(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/src/app/budget-和时间估计器/共享/通讯器项目/通讯器项目.服务.规范ts:35:17)
在ZoneDelegate.webpackJsonp…/../../../../../zone.js/dist/zone.js.ZoneDelegate.invoke(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/zone.js/dist/zone.js:392:1)
在ProxyZoneSpec.webpackJsonp…/../../../../../zone.js/dist/proxy.js.ProxyZoneSpec.onInvoke(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/zone.js/dist/proxy.js:79:1)
在ZoneDelegate.webpackJsonp…/../../../../../zone.js/dist/zone.js.ZoneDelegate.invoke(http://0.0.0.0:9876/_karma_webpack_/webpack:/home/app/node_modules/zone.js/dist/zone.js:391:1)