私は単体テストしたいサービスがあります。これは現在のjson配列オブジェクトを持ち、このオブザーバブルがサブスクライブされているときは正常に動作します。角度2/4ジャスミンユニットがjsonオブジェクト構造のサービスをテストしています
しかし、単体テストには何が間違っていますか?
サービスコード
getTrackerData(): (Observable<any>) {
return Observable.of(tracker)
.do(data => console.log('trackerdata', data))
.catch(this.handleError)
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
DATA
const tracker =
[{
"tracker": "2278474849", "task": 1, "agent": 1, "session": "2278474849-1-1"
}
]
ユニットテスト
/// <reference path="../../../../node_modules/@types/jasmine/index.d.ts" />
import { TestBed, fakeAsync, inject, tick, async, ComponentFixture, ComponentFixtureAutoDetect } from '@angular/core/testing';
import { MockBackend } from '@angular/http/testing'
import { Http, BaseRequestOptions, Response, ResponseOptions } from '@angular/http'
import { BrowserModule, By } from "@angular/platform-browser";
import { ReactiveFormsModule } from '@angular/forms';
import { Observable } from 'rxjs/Rx'
import { TrackerService } from './tracker.service'
describe('tracker service',() => {
let mockResponse, matchingItem, connection
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [
TrackerService,
MockBackend,
BaseRequestOptions,
{
provide: Http,
useFactory: (backend, defaultOptions) => new Http(backend, defaultOptions),
deps: [MockBackend, BaseRequestOptions]
},
]
});
const items =
[{
"tracker": "2278474849", "task": 1, "agent": 1, "session": "2278474849-1-1"
}
];
mockResponse = new Response(new ResponseOptions({ body: items, status: 200 }));
}));
describe('getTrackerData',() => {
//subscribe to connection and storing it later
it('should return all items', inject([TrackerService, MockBackend], (service: TrackerService, backend: MockBackend) => {
backend.connections.subscribe(connection => {
connection.mockRespond(mockResponse);
});
service.getTrackerData() //{ "tracker": "2278474849", "task": 1, "agent": 1, "session": "2278474849-1-1" }
.subscribe((items: any => {
expect(this).toBe(2);
}));
})
});
私はdescribe
セクションでエラーが発生しているようですが、私はオンラインサンプルと組み合わせたプロジェクトのいくつかの例を混在させながら、javascript/angular unitテストを書くのに慣れていません。
私が欲しい/やるべきことは簡単なはずですが、まだ多くの依存関係をインポートしていますが、これは今混乱しています。
誰かが私がする必要があることを知っていますか?
それを(注入、「すべてのアイテムを返す必要があります」([TrackerService、MockBackend]、: 私はまた、あなたがこれらの輸入のいずれかが必要かわかりません? –
あなたはあなたが得ているエラーを共有することができますか? –