使用 时TestBed
,您真的是在对组件进行单元测试还是在进行集成测试?
创建一个夹具(TestBed.createComponent(AppComponent)
)并fixture.detectChanges()
自动调用调用ngOnInit
。如果您想测试另一种方法,您现在正在测试多个单元。
这就引出了另一个问题:您应该测试单元,还是测试用户操作?例如,您是否应该测试该方法setDimensions
,或者您是否应该测试当用户单击某个按钮时,元素是否具有适当的尺寸等。
我猜第一种测试方式会更接近“单元测试”方式,但是你仍然必须处理被调用组件的生命周期方法。这让我觉得没有办法使用TestBed
. 存根所有生命周期方法似乎很荒谬。
无论您决定测试哪种方式,都应该测试 DOM,不是吗?然后,您不会通过包含 DOM api 进行孤立测试。