对Angular使用了HttpClient的服务进行单元测试
生活随笔
收集整理的這篇文章主要介紹了
对Angular使用了HttpClient的服务进行单元测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
待測試的服務:
import { Injectable } from '@angular/core'; import {HttpClient} from '@angular/common/http';@Injectable() export class BookManageService {private API_PATH = 'https://www.googleapis.com/books/v1/volumes';constructor(private http: HttpClient) { }searchBooks(queryTitle: string) {return this.http.get(`${this.API_PATH}?q=${queryTitle}`);} }單元測試代碼:
import { TestBed } from '@angular/core/testing'; import { BookManageService } from './book-manage.service'; import { Book } from '../model/books'; import { of } from 'rxjs';describe('Book Manage service', () => {let httpClientSpy: { get: jasmine.Spy };let bookService: BookManageService;beforeEach(() => {httpClientSpy = jasmine.createSpyObj('HttpClient', ['get']);bookService = new BookManageService(httpClientSpy as any);});it('should return expected books (HttpClient called once)', () => {const BOOK: Book = {id: 'Jerry-Book',volumeInfo: {title: 'Diablo',subtitle: 'Diablo II',authors: ['Jerry', 'Tom'],publisher: 'SAP',publishDate: '2020-2-2',description: 'This is great book',averageRating: 1,ratingsCount: 100}};const expectedBooks: Book[] = [ BOOK];httpClientSpy.get.and.returnValue(of(expectedBooks));bookService.searchBooks('Jerry').subscribe(books => expect(books).toEqual(expectedBooks, 'expected books'),fail);expect(httpClientSpy.get.calls.count()).toBe(1, 'one call');}); });測試結果:
總結
以上是生活随笔為你收集整理的对Angular使用了HttpClient的服务进行单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于甜品的朋友圈文案 有关于甜品的句子
- 下一篇: 全球首批机器受精试管婴儿出生,使用 PS