动态创建组件测试中的变化检测

时间:2017-05-17 01:16:26

标签: angularjs angular integration-testing angular-upgrade

我正在将AngularJS应用程序迁移到Angular(1.6到4.0),并且我在测试中遇到了动态创建的组件。例如,我有一个集成测试,它创建一个AngularJS组件,其中有一个按钮,弹出一个通过ngx-bootstrap创建的Angular模式(使用ComponentFactory.create)。问题是变化检测不会在我的测试中触发模态内部。它适用于应用程序本身。其他Angular 2组件在测试中工作,但不是动态创建的。

我的设置中是否有错误导致动态创建的组件被挂钩到错误的区域?我已经尝试过所有我认为无法改变的组合。

我用一些简单的嵌入式角度2组件here制作了一个plunkr。

为了测试它,我发现自己必须总是手动触发变化检测here。打开app/ng1/parent.spec.ts,您可以在其中找到不需要的doChangeDetection功能。

请注意,我使用UpgradeAdapter代替downgradeComponent,因为this github issue表示非动态创建的组件会破坏更改检测。

0 个答案:

没有答案