Angular jasmine单元测试框架TestBed.createComponent的实现原理
生活随笔
收集整理的這篇文章主要介紹了
Angular jasmine单元测试框架TestBed.createComponent的实现原理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
單元測(cè)試代碼里的createComponent,是通過TestBedRender實(shí)現(xiàn)的:
TestBedRenderer3:
獲得注入的TestComponentRenderer:
const result = this.testModuleRef.injector.get(token, UNDEFINED, flags);
得到DomTestComponentRenderer:
一個(gè)硬編碼的rootElementId:root0
創(chuàng)建一個(gè)template元素,里面包含一個(gè)div元素,id為root0:
type就是createComponent的輸入?yún)?shù):
type as any之后,其?cmp屬性里包含了很多信息,簡(jiǎn)而言之,就是Component的定義,也就是metadata:
使用ComponentDefinition創(chuàng)建ComponentFactory:
在ngZone里運(yùn)行initComponent,并將結(jié)果插入到activeFixtures里,并返回fixture:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的Angular jasmine单元测试框架TestBed.createComponent的实现原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Angular jasmine单元测试框
- 下一篇: HTML基本标签