Saurabhグプタ:
私はユニットテストしていた角度を使用してアプリケーションをジャスミンをし、私はそれにしています。アプリケーションがで書かれたバックエンドがある春のブートいくつかのAPIを公開し、。
APIの(GETリクエスト)のいずれかから受信したコンテンツがあるマップされたキー、値(オブジェクト、値)のペアのリスト。
どのような私が欲しいのは、それが(結果)以下と同じに見えるような応答を模擬することです。
Like this => [
key: value *//does not have an index*
]
Accessed like this => this.list = result['someList'];
例えば、
constructor(private httpClient: HttpCLient) {}
ngOnInit() {
this.getAll().subscribe(result => {
this.someListInsideResult = result['someList'];
console.log('result: ', result);
console.log('someListInsideResult: ', someListInsideResult);
}
}
getAll() {
this.headers = new HttpHeaders().set('X-Authorization', 'Bearer ' + token).set('X-Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json');
return httpClient.get(url, {headers: headers});
}
コンソール:
// actual respose(result)
result: [
key1: value1
key2: value2
...
...
someList: 0: "stringValue"
1: "ENUM"
2: null
]
// list inside the response
someListInsideResult: 0: "stringValue"
1: "ENUM"
2: null
誰が助けることができれば、それは非常に感謝します。
前もって感謝します。
Shashankヴィヴェック:
サービスへのHTTP呼び出しを移動し、言うことができますUserService
:
UserService.service.ts
export class UserService{
getAll(): Observable<any> {
this.headers = new HttpHeaders().set('X-Authorization', 'Bearer ' + token).set('X-
Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json');
return httpClient.get(url, {headers: headers});
}
}
コントローラにおいて、サービスと使用などを注入
User.component.ts
ngOnInit() {
this.userSvc.getAll().subscribe(result => {
this.someListInsideResult = result['someList'];
console.log('result: ', result);
console.log('someListInsideResult: ', someListInsideResult);
}
}
そして、テスト用のモックサービスを作成します。
MockUserService.ts
export class MockUserService {
getAll() {
return of({
key1: 'key1',
someList : [{ "0" : "stringValue"}]
})
}
}
その後でUser.component.spec.ts
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [],
declarations: [UserComponent],
providers: [
{ provide: UserService, useClass: MockUserService }] // <-- Here we have injected our Mock
}).compileComponents();
}));