私はテストを書いた簡単な電子メールサブスクリプションアプリケーションを作成していますが、今のところうまくいきました。
 
    簡単にするために、私が問題に直面している正確な部分を説明したいと思います。
 
    my-service.ts:
 
    export class MyService {
  mailChimpEndpoint =
    'https://gmail.us10.list-manage.com/subscribe/post-json?u=aaa7182511d7bd278fb9d510d&id=01681f1b55&';
  constructor(private _http: HttpClient) {}
  submitForm(email: string){
        const params = new HttpParams()
        .set('EMAIL', email)
        .set('subscribe','Subscribe')
        .set('b_aaa7182511d7bd278fb9d510d_01681f1b55','')
        const mailChimpUrl = this.mailChimpEndpoint + params.toString();
        return this._http.jsonp<MailChimpResponse>(mailChimpUrl, 'c')
  }
}
 
     
     上記は、APIを呼び出すサービスの簡単なメソッドです
 
    
 
    サービスファイルへのリンク: https://stackblitz.com/edit/angular-testing-imniaf?file=app%2Fmy-service.ts
 
    今私は、上記の方法のためのテストケース記述しようとしていますsubmitForm中に
 
    my-service.spec.ts
 
      it('check subscribeEmail function has been called in service', (done: DoneFn) => {
    const service = TestBed.get(MyService);
    service.submitForm('[email protected]').subscribe(
        response => {
            expect(response).toEqual(mockServiceData);
        }
    )
    const reqMock = httpTestingController.expectOne(request => request.url === mailChimpEndpoint);
    expect(reqMock.request.method).toBe('GET');
    reqMock.flush(mockServiceData);
  });
 
    このスペックファイルへのリンク: https://stackblitz.com/edit/angular-testing-imniaf?file=app%2Fmy-service.spec.ts
 
    これは私が立ち往生しているところです、そして上記のコードは次のようにエラーをスローします、
 
     
     エラー:条件「Matchbyfunction:」に一致するリクエストが1つ必要ですが、見つかりませんでした。
 
    
 
    完全に機能するstackblitzリンク:
 
     
     https://stackblitz.com/edit/angular-testing-ajoov8
 
    
 
    このテストに合格するのを手伝ってください。