Angular Observable数据类型的单元测试数据准备
生活随笔
收集整理的這篇文章主要介紹了
Angular Observable数据类型的单元测试数据准备
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我有一個Component,其items屬性是一個嵌套的Observable:
items$: Observable<Observable<Product>[]> = this.componentData$.pipe(map((data) => data.productCodes.trim().split(' ')),map((codes) =>codes.map((code) => this.productService.get(code, this.PRODUCT_SCOPE))));ComponentData$的類型:
private componentData$: Observable<model> = this.componentData.data$.pipe(filter(Boolean));Model的定義:
componentData$類型為Observable,調(diào)用map的回調(diào)里又嵌入了map操作,這是返回類型為嵌套Observable的原因。
因為items是從componentData是從componentData是從componentData得來的,而componentData$又來自componentData,因此我只用考慮如何構(gòu)造componentData測試數(shù)據(jù)就行了:
private componentData$: Observable<model> = this.componentData.data$.pipe(filter(Boolean));下面看看如何在單元測試用例里創(chuàng)建mock數(shù)據(jù):MockCmsProductCarouselComponent:
完整解決方案:
const mockComponentData: CmsProductCarouselComponent = {uid: '001',typeCode: 'ProductCarouselComponent',modifiedTime: new Date('2017-12-21T18:15:15+0000'),popup: 'false',productCodes: productCodeArray.join(' '),scroll: 'ALLVISIBLE',title: 'Mock Title',name: 'Mock Product Carousel',container: 'false', };const MockCmsProductCarouselComponent = <CmsComponentData<any>>{data$: of(mockComponentData), };要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的Angular Observable数据类型的单元测试数据准备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为SAP Spartacus安装后台必须
- 下一篇: 网信办开展“清朗・优化营商网络环境”行动