【问题标题】:Angular - Karma Testing - Failed: Cannot read property 'textContent' of nullAngular - Karma 测试 - 失败:无法读取 null 的属性“textContent”
【发布时间】:2018-10-03 23:14:29
【问题描述】:

我在 Angular 6 应用上运行“ng test”时遇到了一次失败:

失败:无法读取 null 的属性“textContent”


请查看示例应用... SampleApp


问题似乎出在 app.component.spec.ts 文件上。请参阅下面的错误消息:

AppComponentTest > -> should render title in a h1 tag
Failed: Cannot read property 'textContent' of null
    at <Jasmine>
    at UserContext.eval (./src/app/app.component.spec.ts?:31:44)
    at ZoneDelegate.invoke (./node_modules/zone.js/dist/zone.js?:387:26)
    at AsyncTestZoneSpec.onInvoke (./node_modules/zone.js/dist/zone-testing.js?:712:39)
    at ProxyZoneSpec.onInvoke (./node_modules/zone.js/dist/zone-testing.js?:284:39)
    at ZoneDelegate.invoke (./node_modules/zone.js/dist/zone.js?:386:32)
    at Zone.runGuarded (./node_modules/zone.js/dist/zone.js?:150:47)
    at runInTestZone (./node_modules/zone.js/dist/zone-testing.js?:840:29)
    at UserContext.eval (./node_modules/zone.js/dist/zone-testing.js?:774:17)
    at ZoneDelegate.invoke (./node_modules/zone.js/dist/zone.js?:387:26)
    at ProxyZoneSpec.onInvoke (./node_modules/zone.js/dist/zone-testing.js?:287:39)

【问题讨论】:

  • AppComponent 的模板中没有 h1。将测试移至模板中带有h1 标签的组件。
  • 成功了,谢谢!

标签: angular typescript unit-testing karma-jasmine angular-test


【解决方案1】:

被测组件的设置包括 CUSTOM_ELEMENTS_SCHEMA,它允许在模板中使用自定义标记元素,而不会通过实例化相关组件来使测试复杂化。因此,从父组件中测试子组件中的元素会失败。解决方案是将失败的测试规范移动到适当的子组件中。

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 2020-11-16
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多