Typescript/Angular2で書かれたモックサービスのユニットテストを設定しようとしています。 私は、通常の使用ではObservables => Subscribeが関数ではないユニットテストモックサービス
TypeError: this._subscribe is not a function
を取得し、私のユニットテストでサービスから任意のメソッドを呼び出すようにしようとすると、サービスが正常に動作します。
マイダミーサービスは次のようになります。ここでは
import {Observable} from 'rxjs/Rx';
import {Zahlungsverbindung, ZahlungsverbindungArtEnum} from '../../model/zahlungsverbindung.model';
import {Response} from '@angular/http';
import {RestData} from '../RestData';
import {Injectable} from '@angular/core';
@Injectable()
export class DummyDataServiceMock {
private _someData : RestData = this.createDummyData();
public getDummyData(): Observable<RestData> {
return Observable.create(this._someData);
}
private createDummyData(): RestData {
let id = 1;
let usable = true;
let someValue = 'AKTUELL';
let otherValue = 'Dummy Person';
let restData: RestData = {
id: id,
usable: usable,
someValue: someValue,
otherValue: otherValue,
}
return restData;
}
}
がRestDataです:
export interface RestData {
id?: number;
usable?: boolean;
someValue?: string;
otherValue?: string;
}
そして、失敗のユニットテスト:
import {DummyDataServiceMock} from '../DummyData.service.mock.ts';
import {RestData} from '../RestData.ts';
import {TestBed, inject, async} from '@angular/core/testing';
describe('DummyService (Mocked)',() => {
let service;
beforeEach(() => TestBed.configureTestingModule({
providers: [DummyDataServiceMock],
}));
beforeEach(inject([DummyDataServiceMock], s => {
service = s;
}));
it('Service should be defined', async(() => {
expect(service).toBeDefined();
}));
it('Get dummy data from service', async(() => {
let restData: RestData;
service.getDummyData().subscribe(data => {
restData = data
expect(restData.id).toBeDefined();
});
}));
})
私はセットアップには多くの方法を試してみましたテストはしましたが、どちらも機能しませんでした。 私はインターネットでも多くを検索しましたが、同じ問題を抱えている人は見つかりませんでした。 奇妙なことは、サービスが定義されていることである、と私は
を行うとき、私は得る:
Observable {_isScalar: false, _subscribe: Object}
私はあなたたちは1つのより多くの時間を私を助けることができると思います。